التحميل الزائد للدوال
جزء من قسم Fundamentals في رحلة C++ على Coddy — الدرس 54 من 74.
تحميل الدوال الزائد (Function overloading) هو ميزة في لغة C++ حيث يمكن أن يكون لدالتين أو أكثر نفس الاسم ولكن بمعاملات مختلفة. عندما تستدعي دالة محملة بشكل زائد، يحدد مترجم C++ التعريف الأكثر ملاءمة للاستخدام من خلال مقارنة أنواع الوسائط التي استخدمتها في الاستدعاء مع أنواع المعاملات المحددة في التعريفات. إذا لم يتم العثور على دالة مطابقة، فسيقوم المترجم بإنشاء خطأ.
إليك مثال على زيادة تحميل الدوال (function overloading):
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
int main() {
int sum1 = add(5, 3); // يستدعي النسخة الأولى من add
double sum2 = add(2.5, 3.7); // يستدعي النسخة الثانية من add
return 0;
}في هذا المثال، لدينا دالتان باسم add. إحداهما تأخذ معاملين من نوع int، والأخرى تأخذ معاملين من نوع double. وبناءً على أنواع الوسائط التي نمررها إلى add، يتم استدعاء النسخة المناسبة من الدالة.
من المهم ملاحظة أن نوع الإرجاع وحده لا يكفي لتحميل الدالة بشكل زائد (overload). يجب أن تختلف الدوال في قوائم المعلمات الخاصة بها.
ورقة مرجعية
يسمح التحميل الزائد للدوال (Function overloading) بوجود دوال متعددة بنفس الاسم ولكن بمعاملات مختلفة. يختار المترجم الدالة المناسبة بناءً على أنواع الوسائط:
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
int main() {
int sum1 = add(5, 3); // يستدعي نسخة int
double sum2 = add(2.5, 3.7); // يستدعي نسخة double
return 0;
}يجب أن تختلف الدوال في قوائم المعاملات الخاصة بها - نوع الإرجاع وحده لا يكفي للتحميل الزائد.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمة (Modulo)الزيادة والنقصانالزيادة والنقصان اللاحقةاختصارات العمليات الحسابيةمعاملات المقارنةمقارنة النصوص10الدوال
تعريف دالةالمعاملاتأنواع الإرجاعالتحميل الزائد للدوالمراجعة - دالة Sigmaمراجعة - دالة التحققدوال Void