آموزش سربارگذاری توابع در C++ (سربارگذاری توابع)

رتبه: 5 ار 1 رای SSSSS
آموزش سربارگذاری توابع در C++ (سربارگذاری توابع)
نویسنده: میلاد حیدری زمان مطالعه 2 دقیقه
Banner Image

به توابع هم نامی که آرگومان (ها)ی متفاوتی دارند، توابع سربارگذار می گویند. در این آموزش، سربارگذاری توابع را به همراه مثال یاد خواهید گرفت.

تابع اشاره به بخشی از کد دارد که کار خاصی انجام می دهند. در برنامه نویسی ++C، دو تابع می توانند نام یکسانی داشته باشند، ولی باید تعداد یا نوع آرگومان هایشان متفاوت باشد. این توابع در تعداد یا نوع (یا هر دو) آرگومان ها تفاوت دارند و به عنوان توابع سربارگذار شناخته می شوند. به عنوان مثال:

int test() { }

int test(int a) { }

float test(double a) { }

int test(int a, double b) { }

در اینجا، تمام ۴ تابع، توابع سربارگذار هستند، زیرا آرگومان (ها)ی ارسالی به توابع متفاوت اند.

توجه داشته باشید که نوع بازگشتی این ۴ تابع یکسان نیستند. توابع سربارگذار ممکن است نوع بازگشتی متفاوت داشته باشند یا نداشته باشند، اما باید آرگومان های متفاوت داشته باشند.

// Error code

int test(int a) { }

double test(int b){ }

تعداد و نوع آرگومان های ارسال شده به این دو توابع مشابه هستند هر چند نوع بازگشتی متفاوت است. از این رو، کامپایلر خطا می دهد.

مثال ۱ : سربار گذاری توابع در C++

  1. #include <iostream>
  2. using namespace std;
  3. void display(int);
  4. void display(float);
  5. void display(int, float);
  6. int main() {
  7. int a = 5;
  8. float b = 5.5;
  9. display(a);
  10. display(b);
  11. display(a, b);
  12. return 0;
  13. }
  14. void display(int var) {
  15. cout << “Integer number: ” << var << endl;
  16. }
  17. void display(float var) {
  18. cout << “Float number: ” << var << endl;
  19. }
  20. void display(int var1, float var2) {
  21. cout << “Integer number: ” << var1;
  22. cout << ” and float number:” << var2;
  23. }

خروجی

Integer number: 5

Float number: 5.5

Integer number: 5 and float number: 5.5

در اینجا، تابع ()display سه بار با نوع یا تعداد متفاوت آرگومان صدا زده شده است.

نوع بازگشتی همه ی توابع یکسان است، اما الزام نیست.

مثال ۲ : سر بار گذاری توابع در C++

  1. // Program to compute absolute value
  2. // Works both for integer and float
  3. #include <iostream>
  4. using namespace std;
  5. int absolute(int);
  6. float absolute(float);
  7. int main() {
  8. int a = -5;
  9. float b = 5.5;
  10. cout << “Absolute value of ” << a << ” = ” << absolute(a) << endl;
  11. cout << “Absolute value of ” << b << ” = ” << absolute(b);
  12. return 0;
  13. }
  14. int absolute(int var) {
  15. if (var < 0)
  16. var = -var;
  17. return var;
  18. }
  19. float absolute(float var){
  20. if (var < 0.0)
  21. var = -var;
  22. return var;
  23. }

خروجی

Absolute value of -5 = 5

Absolute value of 5.5 = 5.5

در مثال بالا، دو توابع ()absolute سربارگذاری دارند.

هر دو تابع یک آرگومان دارند. با این حال، یک تابع integet می گیرد و دیگری float .

هنگامی که تابع ()absolute با آرگومان صحیح صدا زده می شود، تابع زیر فراخوانی می شود:

int absolute(int var) {

if (var < 0)

var = -var;

return var;

}

هنگامی که تابع ()absolute با آرگومان float صدا زده می شود، تابع زیر فراخوانی می شود:

float absolute(float var){

if (var < 0.0)

var = -var;

return var;

}

profile name
میلاد حیدری

بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. لطفا ! هر سوالی دارید در بخش نظرات مطرح کنید. ما یا سایر هموطنان عزیز پاسخ خواهیم داد. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

مطالب پیشنهادی برای شما

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

1 2 3 4 5

1 نظر درباره «آموزش سربارگذاری توابع در C++ (سربارگذاری توابع)»

  • سارا
    سارا آیا این دیدگاه مفید بود ؟

    بسیار بسیار مطالب عالی و کاربردی هستن

    پاسخ
مشاهده همه نظرات
سبد خرید
سبد خرید شما خالی است
× جهت نصب روی دکمه زیر در گوشی کلیک نمائید
آی او اس
سپس در مرحله بعد برروی دکمه "Add To Home Screen" کلیک نمائید