C++Overloading
- مفهوم الـ Overloading
- شروط الـ Overloading
- أمثلة شاملة على الـ Overloading
مفهوم الـ Overloading
Overloading تعني تعريف أكثر من عامل, دالة أو كونستركتور لهم نفس الإسم و لكنهم يختلفون في عدد أو نوع الباراميترات.
عند تعريف أكثر من كونستركتور لهم نفس الإسم يكون الهدف أنه عند إنشاء كائن يكون هناك أكثر من طريقة متاحة لتمرير قيم أولية للخصائص الموجودة فيه.
عند تعريف أكثر من دالة لهم نفس الإسم يكون الهدف منهم إمكانية تنفيذ نفس العملية مع مراعاة عدد و أنواع القيم التي يتم تمريرها لللدالة عند استدعائها.
عند تعريف أكثر من عامل لهم نفس الرمز يكون الهدف منهم تصغير حجم الكود عند التعامل مع الكائنات.
شروط الـ Overloading
- يطبق فقط على العوامل, الدوال و الكونستركتورات.
- يجب أن يملكوا نفس الإسم.
- يجب أن يختلفوا في نوع أو عدد الباراميترات.
- بالنسبة للدوال, نوع الإرجاع غير مهم لأن المترجم لا يستطيع التفريق بين الدوال إذا كانوا مختلفين في نوع الإرجاع فقط.
العوامل التالية يمكن أن نفعل لها Overload.
-
*
/
%
^
|
~
!
,
=
<=
>=
++
--
>>
==
!=
&&
||
-=
/=
%=
^=
&=
*=
<<=
>>=
[]
()
->*
new
new []
delete
delete []
العوامل التالية لا يمكن أن نفعل لها Overload.
أمثلة شاملة على الـ Overloading
المثال الأول
تعريف دوال لها نفس الإسم و تختلف في نوع الباراميترات.
المثال الثاني
تعريف دوال لها نفس الإسم و تختلف في عدد الباراميترات.
المثال الثالث
تعريف دوال تعتمد على دوال عندها نفس الإسم.
المثال الرابع
تعريف أكثر من كونستركتور في الكلاس.
المثال الخامس
كيف يمكنك أن تفعل Overload للعامل ++
لجعله يقوم بزيادة قيم الكائن الذي يستدعى منه.
المثال السادس
كيف يمكنك أن تفعل Overload للعامل +
لجعله يقوم بإضافة قيم كائن على قيم كائن آخر.