تک دیک

واژه نامه و مجله آموزشی کامپیوتر و تکنولوژی

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages
Filter by Categories
A
B
C
D
E
F
G
H
I
J
K
L
M
N
Numbers
O
P
Q
R
S
T
U
V
W
Y
Z
آگهی
اپلیکیشن ها
اچ‌تی‌ام‌ال
اسکرچ
اشخاص و شرکت ها
امنیت
امنیت آنلاین
اندروید
اینترنت
پایتون
پرسش و پاسخ
جاوااسکریپت
حروف انگلیسی
خبر
دوره های آموزشی
سخت‌افزار
سی‌اس‌اس
شبکه
فنی
کنسول جستجوی گوگل
گرافیک
لینوکس
مایکروسافت اکسل
مایکروسافت پاورپوینت
مایکروسافت ورد
مبانی کامپیوتر
مجله
مجله – امنیت
مجله – بازی
مجله – برنامه نویسی
مجله – دنیای اینترنت
مجله – سخت افزار
مجله – سیستم
مجله – شبکه
مجله – شبکه های اجتماعی
مجله – عمومی
مجله – گوشی‌های هوشمند
مجله – نرم افزار
مجله – ویندوز
مقدماتی
موضوعی
نرم‌افزار
وردپرس

سربارگذاری تابع Function Overloading

سربارگذاری تابع یا Function Overloading چیست؟

منظور از سربارگذاری تابع در برنامه نویسی، ایجاد نسخه‌های مختلفی از یک تابع با نام یکسان است که قادر به انجام کارهای تقریبا مشابهی هستند. در واقع تابع سربارگذاری شده دارای چندین پیاده سازی است که بسته به نیازهای مختلف برنامه، هر پیاده سازی دستورات متفاوتی را اجرا می‌کند.

برای مثال یک تابع فرضی به نام Multiply را درنظر بگیرید. نسخه‌ای از این تابع دارای یک پارامتر است که عددی صحیح را دریافت می‌کند. در این نسخه، عدد دریافتی در عدد 2 ضرب شده و حاصل به عنوان خروجی برگردانده می‌شود. پیاده سازی دیگری از تابع Multiply دارای دو پارامتر از نوع عدد صحیح (integer) است که عدد اول را به عنوان عملوند اول و عدد دوم را به عنوان عملوند دوم ضرب در نظر می‌گیرد. هنگام فراخوانی این تابع، در صورتی که تنها یک پارامتر تعیین شود کامپایلر (مفسر) متوجه می‌شود که باید از نسخه‌ی اول استفاده کند و در صورتی که دو پارامتر وارد شود از نسخه‌ی دوم استفاده خواهد شد.

برنامه‌ی زیر به زبان C++ نحوه‌ی پیاده سازی‌های فوق را نمایش می‌دهد. دقت کنید اولین فراخوانی این تابع در main مقدار 200 (حاصل ضرب 100 در عدد 2) را برمی‌گرداند و فراخوانی دوم، مقدار 400 (حاصل ضرب 100 در عدد 4) را برمی‌گرداند.

#include <iostream>
using namespace std;
int Multiply(int a)
{
    return a*2;
}

int Multiply(int a, int b)
{
    return a*b;
}

int main()
{
    cout << Multiply(100);
    cout << Multiply(100, 4);
}

برای اینکه هنگام فراخوانی مشخص شود باید از کدام نسخه‌ی تابع سربارگذاری شده استفاده شود لازم است نوع یا تعداد پارامترهای تابع در پیاده سازی‌های مختلف متفاوت باشد. به عنوان مثال نمی‌توان تابع Power فوق را به شکلی ایجاد نمود که در هر دو نسخه یک پارامتر، آن هم از نوع integer دریافت کند. دقت داشته باشید در تعداد نسخه‌های overload شده‌ی تابع هیچ محدودیتی وجود ندارد اما قانون فوق باید رعایت شود.

یکی از کاربردهای رایج سربارگذاری تابع در مورد توابع سازنده (Constructor) کلاس‌ها دیده می‌شود. معمولا نسخه‌ای از تابع سازنده بدون پارامتر تعریف می‌شود و مقادیر متغیرهای عضو کلاس را با یک مقدار پیش فرض (مثل صفر) مقداردهی می‌کند. نسخه‌ای دیگر نیز مقادیر مورد نظر کاربر را از طریق پارامترهایی دریافت می‌کند و به متغیرها تخصیص می‌دهد.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

تولید و انتشار محتوای تخصصی علاوه بر زمان، هزینه هم دارد. بخش عمده هزینه‌های تک‌دیک با بودجه شخصی و حمایت‌های شما کاربران گرامی تأمین می‌شود. اگر محتوای این صفحه برای شما مفید واقع شده با روش‌های مختلفی از سراسر دنیا می‌توانید در تکمیل و تداوم فعالیت این سایت به گروه کوچک ما کمک کنید و در اجر معنوی آن نیز سهیم شوید. ما صمیمانه قدردان این محبت شما هستیم.

ما در تک‌دیک تلاش می‌کنیم محتوایی دقیق، واضح و بدون اشتباه منتشر کنیم. به همین دلیل هر مطلب پیش از انتشار بارها بازبینی می‌شود. از طرف دیگر با توجه به حجم بالای مطالب به کمک شما هم نیاز داریم. اگر احساس می‌کنید محتوای این صفحه باید بروزرسانی، تکمیل یا تصحیح شود و یا سوالی در مورد این مطلب دارید که بدون پاسخ مانده خوشحال می‌شویم آن را در بخش دیدگاه‌های همین مطلب با ما در میان بگذارید.

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نوشته‌های بیشتر

تبلیغات متنی ساده