كيفية تنفيذ زيادة التحميل على الوظائف وتجاوزها في C ++؟



ستقدم لك هذه المقالة التحميل الزائد للوظائف وتجاوزها في C ++ وهما من المفاهيم المهمة جدًا لـ OOPS.

C ++ هو امتداد في الطبيعة ويتميز بالعديد من الميزات. في هذه الجلسة سنناقش كيفية تنفيذ التحميل الزائد للوظيفة وتجاوز الوظيفة في C ++.

سيتم تغطية المؤشرات التالية في هذه المقالة ،





الانتقال إلى هذه المقالة حول التحميل الزائد للوظيفة وتجاوزها في C ++

وظيفة التحميل الزائد



الوظائف التي لها نفس الاسم ولكن معامِلات مختلفة مسموح بها في C ++ ويسمى وظيفة التحميل الزائد . ويسمى أيضًا تعدد الأشكال في وقت الترجمة.

فمثلا:

المجموع (int a ، float b) المجموع (int a ، int b) المجموع (int a ، int b ، int c)

هنا ، هناك ثلاث وظائف بنفس الاسم ولكن الشيء الوحيد الذي يميزها هو أن المعلمات مختلفة في كل منها. لذلك ، بناءً على المعلمات التي تم تمريرها ، يتم استدعاء الوظيفة.



إذا كانت أنواع إرجاع الوظائف مختلفة ، فسيتم اعتبارها غير صالحة.

الانتقال إلى هذه المقالة حول التحميل الزائد للوظيفة وتجاوزها في C ++

رمز عينة لوظيفة فوق التحميل

قم بتضمين استخدام فئة مساحة الاسم std Addition {public: int add (int n1، int n2) {return n1 + n2} int add (int n1، int n2، int n3) {return n1 + n2}} int main (void) {Addition كوت< 

انتاج |

الإخراج- وظيفة التحميل الزائد والتجاوز في C ++ - Edureka

تفسير

في البرنامج أعلاه ، لدينا وظيفتان في فئة الجمع. كلا المسمى إضافة. يحتوي أحدهما على معلمتين والآخر به 3 معلمات.

تحويل سلسلة إلى مجموعة php

في الوظيفة الرئيسية ، نقوم بإنشاء كائن إضافة فئة يسمى a. نسمي دوال الإضافة مع معلمات 2 و 3 على التوالي ويتم استدعاء الوظائف المضافة وتقوم بالإضافة.

هذه هي الطريقة التي يحدث بها التحميل الزائد للوظيفة.

الانتقال إلى هذه المقالة حول التحميل الزائد للوظيفة وتجاوزها في C ++

تجاوز الوظيفة

عندما يكون للفئة المشتقة وظيفة بنفس الاسم كدالة للفئة الأساسية ، يتم استدعاؤها تجاوز الوظيفة. يجب أن يكون لكلتا الوظيفتين نفس المعلمات في كلا الفئتين.

رمز عينة لتجاوز الوظيفة

#include using namespace std class BaseClass {public: void disp () {cout<<'Parent Class Function' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Child Class Function' } } int main() { DerivedClass obj = DerivedClass() obj.disp() return 0 } 

انتاج:

تفسير:

في البرنامج أعلاه ، نعرض الوظيفة الأساسية ، بنفس الاسم في الصنفين الأساسي والمشتق. هنا يتم إنشاء الكائن من الفئة المشتقة ، لذلك عندما نسمي العرض يتم عرض كائن الفئة الفرعية فقط.

الانتقال إلى هذه المقالة حول التحميل الزائد للوظيفة وتجاوزها في C ++

أمر بأداء التجاوز

ضع في اعتبارك الكود:

#include using namespace std class BaseClass {public: void disp () {cout<<'Function of Parent Class' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Function of Child Class' } } int main() { BaseClass obj = DerivedClass() obj.disp() return 0 } 

انتاج:

تفسير:

في البرنامج أعلاه ، نعرض الوظيفة الأساسية ، بنفس الاسم في الصنفين الأساسي والمشتق. هنا ، الاختلاف الوحيد عن البرنامج السابق هو أن. نقوم بإنشاء كائن من فئة الطفل. يتم إعطاء كائن الفئة الفرعية مرجع الفئة الأساسية. يمكن القيام بذلك أيضًا باستخدام طريقة أخرى ،

بناء الجملة

Parent_class_name :: الوظيفة ()

في المثال أعلاه ، نستخدمه

BaseClass :: ديس ()

هذه طريقة أخرى للتجاوز.

وظيفة الزائد VS وظيفة تجاوز

كيفية إنشاء إطار jframe
وظيفة الزائد تجاوز الوظيفة
النطاق هو نفسهالنطاق مختلف
يجب أن تختلف التوقيعات (على سبيل المثال: المعلمة)يجب أن تكون التواقيع نفسها
عدد وظائف التحميل الزائد الممكنةهناك وظيفة واحدة فقط ممكنة
قد تحدث بدون وراثةيحدث بشكل رئيسي بسبب الميراث

وبالتالي فقد وصلنا إلى نهاية هذه المقالة حول 'زيادة التحميل على الوظائف وتجاوزها في C ++'. إذا كنت ترغب في معرفة المزيد ، تحقق من بواسطة Edureka ، شركة تعليمية موثوقة عبر الإنترنت. تم تصميم دورة تدريب وإصدار شهادات Java J2EE و SOA من Edureka لتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في هذه المدونة وسنعاود الاتصال بك في أقرب وقت ممكن.