C++مثال حول تعريف دوال لها نفس الإسم و تختلف في نوع الباراميترات
في المثال التالي قمنا بتعريف دالتين إسمهما sum
و نوعهما void
و لكنهما مختلفتان عن بعضهما بأنواع الباراميترات.
الدالة الأولى مهمتها جمع أي عددين نوعهما int
نمررهما لها عند استدعاءها و من ثم طباعة الناتج.
الدالة الثانية مهمتها جمع أي عددين نوعهما float
نمررهما لها عند استدعاءها و من ثم طباعة الناتج.
مثال
using namespace std; // فتقوم بطباعة ناتج جمعهما int عند استدعاءها نمرر لها قيمتين من النوع sum هنا قمنا بتعريف دالة إسمها void sum(int a, int b) { cout << "First method is called ====> " << a << " + " << b << " = " << (a+b) << endl; } // فتقوم بطباعة ناتج جمعهما double عند استدعاءها نمرر لها قيمتين من النوع sum هنا قمنا بتعريف دالة إسمها void sum(double a, double b) { cout << "Second method is called ===> " << a << " + " << b << " = " << (a+b) << endl; } // main() هنا قمنا بتعريف الدالة int main() { sum(4, 6); // int هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر نوعهم sum(2.3, 5.4); // double هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر نوعهم return 0; }
سنحصل على النتيجة التالية عند التشغيل.
First method is called ====> 4 + 6 = 10 Second method is called ===> 2.3 + 5.4 = 7.7
كما لاحظت هنا, في كل مرة قمنا فيها باستدعاء الدالة sum()
وجدنا أن المترجم قام باستدعاء الدالة sum()
المناسبة لنوع الباراميترات التي كنا نمرره لها.