C++مثال حول تعريف دوال لها نفس الإسم و تختلف في عدد الباراميترات
في المثال التالي قمنا بتعريف ثلاث دوال إسمهم sum
و نوعهما void
و لكنهم مختلفين عن بعضهم بعدد الباراميترات.
الدالة الأولى مهمتها جمع أي عددين نمررهما لها عند استدعاءها و من ثم طباعة الناتج.
الدالة الثانية مهمتها جمع أي ثلاث أعداد نمررها لها عند استدعاءها و من ثم طباعة الناتج.
مثال
using namespace std; // عند استدعاءها نمرر لها عددين فتقوم بطباعة ناتج جمعهما sum هنا قمنا بتعريف دالة إسمها void sum(float a, float b) { cout << a << " + " << b << " = " << (a + b) << endl; } // عند استدعاءها نمرر لها ثلاث أعداد فتقوم بطباعة ناتج جمعهم sum هنا قمنا بتعريف دالة إسمها void sum(float a, float b, float c) { cout << a << " + " << b << " + " << c << " = " << (a + b + c) << endl; } // main() هنا قمنا بتعريف الدالة int main() { sum(1, 3); // التي تأخذ قيمتين sum() هنا سيتم إستدعاء الدالة sum(1, 3, 7); // التي تأخذ ثلاث قيم sum() هنا سيتم إستدعاء الدالة return 0; }
سنحصل على النتيجة التالية عند التشغيل.
1 + 3 = 4 1 + 3 + 7 = 11
كما لاحظت هنا, في كل مرة قمنا فيها باستدعاء الدالة sum()
وجدنا أن المترجم قام باستدعاء الدالة sum()
التي تحتوي على نفس عدد الباراميترات الذي كنا نمرره لها.