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

في المثال التالي قمنا بتعريف دالتين إسمهما sum و نوعهما void و لكنهما مختلفتان عن بعضهما بأنواع الباراميترات.
الدالة الأولى مهمتها جمع أي عددين نوعهما int نمررهما لها عند استدعاءها و من ثم طباعة الناتج.
الدالة الثانية مهمتها جمع أي عددين نوعهما float نمررهما لها عند استدعاءها و من ثم طباعة الناتج.

مثال

main.cpp
#include <iostream>

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() المناسبة لنوع الباراميترات التي كنا نمرره لها.

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة