Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux 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;
}

سنحصل على النتيجة التالية عند التشغيل.

The maximum number is: 20
The maximum number is: 20
The maximum number is: 30

كما لاحظت هنا, في كل مرة قمنا فيها باستدعاء الدالة maximum() وجدنا أن المترجم قام باستدعاء الدالة maximum() التي تحتوي على نفس عدد الباراميترات الذي كنا نمرره لها, و داخلياً ربطنا الدوال ببعضها.