اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يبدو أن لديكِ نفس اسم الدالة add مكتوبة مرتين ولكن كل منها له نمط إعادة مختلف الأولى integer و الثانية double. ولكن تم اعتبارها دالة مكررة ولم يتم تطبيق مفهوم overload.

لكن شروط عمل التحميل الزائد أو overload مختلفة عن هذا. حيث أن المترجم compiler لا يقوم بالتمييز بين الدوال بالنسبة لنمط الإرجاع، بل يتأكد من التالي:

  • يتم عمل overload للدوال العادية و الدوال البانية constructor
  • يجب أن يملكوا نفس الاسم
  • يمكن للدالتين اللتين لهما نفس الاسم من امتلاك:
    • عدد وسطاء مختلف أو أنواع وسطاء مختلفة (اختلاف في عدد أو نوع الوسطاء).
    • أو نفس عدد الوسطاء مع اختلاف ترتيبهم في حال كان لهم أنواع مختلفة (وسيطين من نفس النوع لا يعتبر overload).

أمثلة:

  • دالتين لهما عدد مختلف من الوسطاء:
public int add(int a, int b)
{
int sum = a + b;
return sum;
}
// غير عدد من الوسطاء هنا 3 بدل 2
public int add(int a, int b, int c)
{

int sum = a + b + c;
return sum;
}
  • دالتين لهما ننوع مختلف من الوسطاء
public int add(int a, int b, int c)
{

int sum = a + b + c;
return sum;
}

// اختلاف نوع الوسطاء
public double add(double a, double b, double c)
{
double sum = a + b + c;
return sum;
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...