مفهوم ال Overloading في لغة البرمجة ++C
تتيح لغة البرمجة (++C) للمبرمجين بتحديد أكثر من تعريف واحد لإسم دالة أو عامل داخا نطاق معين (Namespace)، وهذا ما يسمي ب التحميل الزائد للوظيفة وهو (Overloading)، حيث يصبح بإمكان المبرمج أن يقوم بتعريف أكثر من عامل (Operator) أو دالة أو كونستركتور لهم نفس الاسم و لكنهم يختلفون في عدد أو نوع ال (Parameters).
والهدف الأساسي من استخدام مفهوم ال (Overloading) أنه عند قيام المبرمج بتعريف أكثر من كونستركتور لهم نفس الاسم، وبعد ذلك يقوم المبرمج بإنشاء كائن يكون هناك أكثر من طريقة متاحة لتمرير قيم أولية للخصائص الموجودة في هذا الكونستركتور، وأيضاً عند قيام المبرمج بتعريف أكثر من دالة لهم نفس الاسم يتمكن المبرمج من خلال ال (Overloading) بتنفيذ نفس العملية مع مراعاة عدد و أنواع القيم التي يتم تمريرها للدالة عند استدعائها.
شروط الـ Overloading:
هناك مجموعة من الشروط التي يجب أن تحقق قبل تنفيذ مفهوم ال (Overloading) في لغة البرمجة سي بلس بلس وهي:
- يتم تطبيق مفهوم ال (Overloading) فقط على العوامل والدوال والكونستركتورات.
- يجب على العوامل والدوال والكونستركتورات أن يملكوا نفس الإسم.
- يجب أن يختلفوا العوامل والدوال والكونستركتورات في نوع أو عدد الباراميترات.
وفيما يلي مثال على استخدام مفهوم ال (Overloading) في لغة البرمجة سي بلس بلس:
#include <iostream> using namespace std; voidsum(int a, int b){ cout << "First method is called ====> " << a << " + " << b << " = " << (a+b) << endl; } // وعند استدعائها يتم تمرير قيمتين من نوع ( int)لها وتقوم بطباعة ناتج جمعهم sum تم إنشاء دالة اسمها voidsum(double a, double b) { cout << "Second method is called ===> " << a << " + " << b << " = " << (a+b) << endl; } // وعند استدعائها يتم تمرير قيمتين من نوع (double) لها وتقوم بطباعة ناتج جمعهم sum تم إنشاء دالة اسمها intmain(){ sum(4, 6); // int هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر من نوع sum(2.3, 5.4); // // double هنا سيتم إستدعاء الدالة التي تأخذ 2 باراميتر من نوع return 0; }