تجاوز الوظائف المحملة بشكل زائد في لغة C
ضع في اعتبارك سيناريو حيث تتجاوز فئة مشتقة وظيفة من فئتها الأساسية التي تم تحميلها بشكل زائد. عند التجاوز، قد تواجه خطأً يشير إلى عدم وجود وظيفة محمّلة بشكل زائد في الفئة المشتقة. هذا السلوك ليس عيبًا في التصميم ولكنه نتيجة لآلية وراثة لغة C.افتراضيًا، عندما تتجاوز فئة ما وظيفة عضو، يتم اعتبار الإصدار الذي تم تجاوزه فقط ضمن نطاق الفئة المشتقة. لذلك، لم يعد من الممكن الوصول إلى أي إصدارات محمّلة بشكل زائد للوظيفة في الفئة الأساسية.لحل هذه المشكلة والاحتفاظ بقدرات التحميل الزائد، يمكنك استخدام توجيه الاستخدام في الفئة المشتقة:
class bar : public foo {
using foo::a; // Bring overloads from 'foo' into 'bar'
};
يحدد توجيه الاستخدام بشكل صريح أن التحميل الزائد لـ a من فئة foo يجب أن يكون متاحًا في فئة bar. يسمح هذا للفئة المشتقة بالوصول إلى كافة الإصدارات المحملة من الوظيفة واستخدامها. من المهم ملاحظة أن استخدام توجيه الاستخدام يمكن أن يؤدي إلى بعض الغموض في حالة وجود نفس التحميل الزائد في كل من الفئات الأساسية والمشتقة. بالإضافة إلى ذلك، إذا كانت التعليمات البرمجية الموجودة تعتمد على السلوك المحدد للتحميل الزائد للفئة الأساسية، فإن إدخال حمولات زائدة جديدة يمكن أن يغير وظيفتها المقصودة. ولذلك ينصح بالحذر عند استخدام هذه التقنية.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3