C++ Function Overloading

🔹 تعریف

  • Function Overloading یعنی داشتن چند تابع با یک نام مشترک ولی پارامترهای متفاوت.

  • کامپایلر بر اساس نوع و تعداد پارامترها تصمیم می‌گیرد کدام تابع را فراخوانی کند.

  • مزیت: خوانایی و راحتی استفاده از توابع مشابه برای داده‌های مختلف.

🔹 قوانین اصلی

  1. توابع نام یکسان دارند.

  2. تعداد یا نوع پارامترها باید متفاوت باشد.

  3. نوع بازگشتی نمی‌تواند تنها عامل تمایز باشد.

1️⃣ مثال ساده: جمع اعداد صحیح و اعشاری

#include <iostream> using namespace std; // جمع دو عدد صحیح int add(int a, int b) { return a + b; } // جمع دو عدد اعشاری double add(double a, double b) { return a + b; } int main() { cout << add(5, 10) << endl; // خروجی: 15 cout << add(3.5, 2.5) << endl; // خروجی: 6 }

2️⃣ مثال: چاپ پیام با پارامترهای مختلف

#include <iostream> using namespace std; void greet() { cout << "Hello!" << endl; } void greet(string name) { cout << "Hello, " << name << "!" << endl; } void greet(string name, int age) { cout << "Hello, " << name << "! You are " << age << " years old." << endl; } int main() { greet(); // خروجی: Hello! greet("Alice"); // خروجی: Hello, Alice! greet("Bob", 25); // خروجی: Hello, Bob! You are 25 years old. }

3️⃣ نکات مهم

  1. نوع بازگشتی نمی‌تواند تنها عامل Overload باشد.

  2. Overloading می‌تواند برای توابع معمولی، آرایه‌ها و حتی struct‌ها استفاده شود.

  3. می‌توان ترکیبی از تعداد پارامتر و نوع پارامتر برای Overloading استفاده کرد.

  4. Function Overloading خوانایی کد را بالا می‌برد و از نوشتن چند تابع با عملکرد مشابه جلوگیری می‌کند.