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

C++Overloading

  • مفهوم الـ Overloading
  • شروط الـ Overloading
  • أمثلة شاملة على الـ Overloading

مفهوم الـ Overloading

Overloading تعني تعريف أكثر من عامل, دالة أو كونستركتور لهم نفس الإسم و لكنهم يختلفون في عدد أو نوع الباراميترات.

عند تعريف أكثر من كونستركتور لهم نفس الإسم يكون الهدف أنه عند إنشاء كائن يكون هناك أكثر من طريقة متاحة لتمرير قيم أولية للخصائص الموجودة فيه.
عند تعريف أكثر من دالة لهم نفس الإسم يكون الهدف منهم إمكانية تنفيذ نفس العملية مع مراعاة عدد و أنواع القيم التي يتم تمريرها لللدالة عند استدعائها.
عند تعريف أكثر من عامل لهم نفس الرمز يكون الهدف منهم تصغير حجم الكود عند التعامل مع الكائنات.

شروط الـ Overloading

  • يطبق فقط على العوامل, الدوال و الكونستركتورات.
  • يجب أن يملكوا نفس الإسم.
  • يجب أن يختلفوا في نوع أو عدد الباراميترات.
  • بالنسبة للدوال, نوع الإرجاع غير مهم لأن المترجم لا يستطيع التفريق بين الدوال إذا كانوا مختلفين في نوع الإرجاع فقط.

العوامل التالية يمكن أن نفعل لها Overload.

+
-
*
/
%
^
&
|
~
!
,
=
<>
<=
>=
++
--
<<
>>
==
!=
&&
||
+=
-=
/=
%=
^=
&=
|=
*=
<<=
>>=
[]
()
->
->*
new
new []
delete
delete []

العوامل التالية لا يمكن أن نفعل لها Overload.

  .     ::     ?:     sizeof    

أمثلة شاملة على الـ Overloading


المثال الأول

تعريف دوال لها نفس الإسم و تختلف في نوع الباراميترات.

شاهد المثال



المثال الثاني

تعريف دوال لها نفس الإسم و تختلف في عدد الباراميترات.

شاهد المثال



المثال الثالث

تعريف دوال تعتمد على دوال عندها نفس الإسم.

شاهد المثال



المثال الرابع

تعريف أكثر من كونستركتور في الكلاس.

شاهد المثال



المثال الخامس

كيف يمكنك أن تفعل Overload للعامل ++ لجعله يقوم بزيادة قيم الكائن الذي يستدعى منه.

شاهد المثال



المثال السادس

كيف يمكنك أن تفعل Overload للعامل + لجعله يقوم بإضافة قيم كائن على قيم كائن آخر.

شاهد المثال