الفرق بين التجاوز والحمل الزائد في C

جدول المحتويات:

الفرق بين التجاوز والحمل الزائد في C
الفرق بين التجاوز والحمل الزائد في C

فيديو: الفرق بين التجاوز والحمل الزائد في C

فيديو: الفرق بين التجاوز والحمل الزائد في C
فيديو: كيف نفرق بين التركيب/التغليب/التجاوز؟ 2024, يوليو
Anonim

الفرق الرئيسي - تجاوز مقابل التحميل الزائد في C

الفرق الرئيسي بين التجاوز والتحميل الزائد في Cهو أن ربط استدعاء الطريقة المتجاوزة بتعريفها يحدث في وقت التشغيل بينما يحدث ربط استدعاء الأسلوب الزائد لتعريفه في وقت الترجمة.

Cهي لغة برمجة للأغراض العامة طورتها Microsoft. الميزة الرئيسية لـ Cهي أنها تدعم البرمجة الشيئية (OOP). أحد أعمدة OOP هو تعدد الأشكال. إنه يعطي كائنًا لديه سلوكيات متعددة. هناك نوعان في تعدد الأشكال يعرفان بالتجاوز والحمل الزائد. تتناول هذه المقالة الفرق بين تجاوز الأسلوب والتحميل الزائد في C.

ما هو التجاوز في C ؟

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

الفرق بين التجاوز والحمل الزائد في C
الفرق بين التجاوز والحمل الزائد في C

الشكل 01: برنامج Cمع تجاوز

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

أولاً ، يتم إنشاء الكائن المرجعي المتغير. يشير إلى كائن الشكل. لذلك ، سيتم تنفيذ طريقة عرض فئة الشكل. ثم يشير المتغير المرجعي إلى كائن المستطيل. لذلك ، سيتم تنفيذ طريقة عرض فئة المستطيل. أخيرًا ، يشير المتغير المرجعي إلى كائن المثلث. لذلك ، سيتم تنفيذ طريقة عرض فئة المثلث. تم تجاوز طريقة عرض الفئة الأساسية بواسطة طرق عرض الفئات المشتقة.

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

ما هو التحميل الزائد في C ؟

في التحميل الزائد ، هناك طرق متعددة لها نفس الاسم ولكن بمعلمات مختلفة. يمكن أن تكون المعلمات من أنواع مختلفة. يمكن أن تحتوي الطرق أيضًا على عدد مختلف من المعلمات.طريقة التحميل الزائد تحدث في نفس الفئة. يحدث ارتباط الطرق المحملة بالتعريف في وقت الترجمة. الرجوع إلى برنامج Cأدناه.

الفرق الرئيسي بين التجاوز والحمل الزائد في C
الفرق الرئيسي بين التجاوز والحمل الزائد في C

الشكل 02: برنامج Cمع التحميل الزائد

وفقًا للبرنامج أعلاه ، تحتوي الفئة A على طريقتين بنفس الاسم تسمى sum. لديهم أنواع مختلفة من المعلمات. في البرنامج الرئيسي ، يتم إنشاء كائن من A. سوف يستدعي المجموع (2 ، 3) طريقة الجمع مع الأعداد الصحيحة. سوف يستدعي المجموع (5.1 ، 7.94) طريقة الجمع بقيم مزدوجة. كلتا الطريقتين لهما نفس الاسم ونفس عدد المعلمات. لكن أنواع المعلمات مختلفة. يتم استدعاء الطريقة المطلوبة وفقًا لذلك. يمكن أن يحدث التحميل الزائد أيضًا إذا كانت أسماء الطرق وأنواع المعلمات متشابهة ولكن عدد المعلمات مختلف.

ما هو التشابه بين التجاوز والحمل الزائد في C ؟

كل من التجاوز والحمل الزائد في Cهما نوعان من تعدد الأشكال

ما هو الفرق بين التجاوز والحمل الزائد في C ؟

تجاوز مقابل التحميل الزائد في C

التجاوز في Cهو توفير تنفيذ محدد في طريقة فئة مشتقة لطريقة موجودة بالفعل في الفئة الأساسية. التحميل الزائد في Cهو إنشاء طرق متعددة بنفس الاسم بتطبيقات مختلفة.
المعلمات
في COverriding ، الأساليب لها نفس الاسم ونفس أنواع المعلمات ونفس عدد المعلمات. في COverloading ، الأساليب لها نفس الاسم ولكن عدد مختلف من المعلمات أو نوع مختلف من المعلمات.
حدث
في C، يحدث التجاوز داخل الفئة الأساسية والفئة المشتقة. في C، يحدث التحميل الزائد داخل نفس الفئة.
وقت الربط
ربط استدعاء الطريقة التي تم تجاوزها بتعريفها يحدث في وقت التشغيل. ربط استدعاء الأسلوب overloaded بتعريفه يحدث في وقت الترجمة.
مرادفات
يسمى التجاوز باسم تعدد أشكال وقت التشغيل أو تعدد الأشكال الديناميكي أو الربط المتأخر. يُطلق على التحميل الزائد تعدد أشكال وقت التجميع أو تعدد الأشكال الثابت أو الربط المبكر.

ملخص - تجاوز مقابل التحميل الزائد في C

التجاوز والحمل الزائد نوعان من تعدد الأشكال. الفرق بين التجاوز والتحميل الزائد في Cهو أن ربط استدعاء الأسلوب المتجاوز لتعريفه يحدث في وقت التشغيل بينما يحدث ربط استدعاء الأسلوب overloaded بتعريفه في وقت الترجمة.

موصى به: