C++مثال حول تعريف دوال تعتمد على دوال عندها نفس الإسم
في المثال التالي قمنا بتعريف ثلاث دوال إسمهم maximum()
و نوعهم double
.
الدالة الأولى تأخذ 2 باراميتر عبارة عن أرقام, و هي تعطينا العدد الأكبر بينهما.
الدالة الثانية تأخذ 3 باراميترات عبارة عن أرقام, و هي تعطينا العدد الأكبر بينهم.
الدالة الثالثة تأخذ 4 باراميترات عبارة عن أرقام, و هي تعطينا العدد الأكبر بينهم.
مثال
using namespace std; // هذه الدالة تعطيها رقمين فترجع لك العدد الأكبر بينهما double maximum(double a, double b) { if(a>b) return a; else return b; } // هذه الدالة تعطيها ثلاثة أرقام فترجع لك العدد الأكبر بينهم // و هي تعتمد على الدالة السابقة لمقارنة أول عددين مع العدد الثالث double maximum(double a, double b, double c) { if(maximum(a,b)>c) return maximum(a,b); else return c; } // هذه الدالة تعطيها ثلاثة أرقام فترجع لك العدد الأكبر بينهم // و هي تعتمد على الدالتين السابقتين لمقارنة أول ثلاث أعداد مع العدد الرابع double maximum(double a, double b, double c, double d) { if(maximum(a,b,c)>d) return maximum(a,b,c); else return d; } // main() هنا قمنا بتعريف الدالة int main() { cout << "The maximum number is: " << maximum(5, 20) << endl; // هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر cout << "The maximum number is: " << maximum(5, 20, 15) << endl; // هنا سيتم إستدعاء الدالة التي تأخذ 3 باراميترات cout << "The maximum number is: " << maximum(5, 20, 15, 30); // هنا سيتم إستدعاء الدالة التي تأخذ 4 باراميترات return 0; }
سنحصل على النتيجة التالية عند التشغيل.
The maximum number is: 20 The maximum number is: 20 The maximum number is: 30
كما لاحظت هنا, في كل مرة قمنا فيها باستدعاء الدالة maximum()
وجدنا أن المترجم قام باستدعاء الدالة maximum()
التي تحتوي على نفس عدد الباراميترات الذي كنا نمرره لها, و داخلياً ربطنا الدوال ببعضها.