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

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