Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

C++مثال حول تعريف دوال تعتمد على دوال عندها نفس الإسم

في المثال التالي قمنا بتعريف ثلاث دوال إسمهم maximum() و نوعهم double.
الدالة الأولى تأخذ 2 باراميتر عبارة عن أرقام, و هي تعطينا العدد الأكبر بينهما.
الدالة الثانية تأخذ 3 باراميترات عبارة عن أرقام, و هي تعطينا العدد الأكبر بينهم.
الدالة الثالثة تأخذ 4 باراميترات عبارة عن أرقام, و هي تعطينا العدد الأكبر بينهم.

مثال

main.cpp
#include <iostream>
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;
}
#include <iostream> 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() التي تحتوي على نفس عدد الباراميترات الذي كنا نمرره لها, و داخلياً ربطنا الدوال ببعضها.