تحميل كتاب شرح ++Operator Overloading in C في لغة سي بلس بلس
مقدمة
في برمجة الحاسوب، يعد تحميل زائد للعملية (بالإنجليزية: operator overloading)، والذي يطلق عليه أحيانًا تعدد الأشكال المخصص للمشغل، حالة محددة من تعدد الأشكال، حيث يكون لدى العوامل المختلفة تنفيذات مختلفة اعتمادًا على قيمهم (arguments). يتم تعريف التحميل الزائد للمشغل بشكل عام بلغة برمجة أو بواسطة مبرمج أو كليهما.
لكل الباحثين عن كتب في البرمجة و تحميل كتاب تعلم c++ للمبتدئين او تحميل كتاب المؤشرات c++ نقدم لكم اليوم كتابا يحوي شرحا كافيا عن Operator overloading حيث يسمح للمستخدم بكيفية عمل العمليات الحسابية (+,-,=,…..) مع مختلف انواع البيانات كذلك جميع العمليات السي بلس بلس وذلك باسلوب مبسط وشرح وافي مع اصور والامثلة التوضيحية وذلك لتكريس الفهم , هذا الكتاب يفيد الطلاب ولكل المختصين في هذا المجال
يمكن تعريف عوامل مثل +
و ->
في ++C من أجل استخدامها مع الأنواع المُعرّفة من قِبل المستخدم. فمثلًا، تعرِّف الترويسة العامل +
لضمّ (concatenate) السلاسل النصية، وهذا ممكن عن طريق تعريف عامِل باستخدام الكلمة المفتاحية operator
.
العوامل الحسابية (Arithmetic operators)
من الممكن زيادة تحميل جميع العوامل الحسابية الأساسية:
+
،+=
-
،-=
*
،*=
/
،/=
&
،&=
|
،|=
^
،^=
>>
،>>=
<<
،<<=
يتشابه التحميل الزائد في كل العوامل كما سترى فيما يأتي من الشرح، ولزيادة التحميل خارج الأصناف (class
) والبنيات (struct
)، يجب تطبيق العامل +operator
وفق العامل =+operator
يجب أن يعيد operator+
قيمة غير ثابتة، إذ أنّ إعادة مرجع لن يكون له معنى -إذ يُرجع كائنًا جديدًا- ولا إعادة قيمة ثابتة const
كذلك إذ يجب أن تتجنّب عمومًا الإعادة بقيمة ثابتة، ويُمرّر الوسيط الأول بالقيمة (by value)، للسببين التاليين:
- نظرًا لأنّك لا تستطيع تعديل الكائن الأصلي، ذلك أن
Object foobar = foo + bar;
لا ينبغي أن يعدّلfoo
على أيّ حال لأنه لا فائدة من ذلك. - لا يمكنك جعله ثابتًا لأنّك ستحتاج إلى تعديل الكائن لما أن
operator+
تُنفَّذ بواسطةoperator+=
الذي يعدّل الكائن
التمرير بمرجع ثابت &const
هو أحد الخيارات المتاحة، لكن سيتعيّن عليك حينها إنشاء نسخة مؤقّتة من الكائن المُمرّر، أما إن مرّرت الوسيط بقيمته (by value) فسيتكفّل المُصرّف بذلك نيابة عنك. كذلك فإن operator+=
يعيد مرجعًا إلى نفسه، وهكذا يمكن سَلْسَلَته، لكن لا تستخدم المتغيّر نفسه، إذ أنّ ذلك سيؤدي إلى سلوك غير محدّد.
الوسيط الأوّل هو مرجع نريد تعديله لكنه ليس ثابتًا، لأنك لن تستطيع تعديله عندئذ، ولا ينبغي تعديل الوسيط الثاني، ويُمرَّر بمرجِع ثابت const&
لأسباب تتعلق بالأداء، إذ أن تمرير الوسيط بمرجع ثابت أسرع من تمريرِه بالقيمة.
نتمنى لكم اقصى استفادة ممكنة من هذا الكتاب
Advertisement
معلومات الكتاب |
||
اسم الكتاب | شرح Operator overloading | |
المؤلف | محمد الحربي | |
نوع الكتاب | ||
الحجم | 1.35 M.B |
قم بكتابة اول تعليق