"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > متى يكون من المقبول الوراثة من فئات مكتبة C++ القياسية؟

متى يكون من المقبول الوراثة من فئات مكتبة C++ القياسية؟

تم النشر بتاريخ 2024-11-08
تصفح:366

When is It Acceptable to Inherit from C   Standard Library Classes?

توسيع مكتبة C القياسية من خلال الوراثة

في حين أنه من المفترض في كثير من الأحيان أن الوراثة من فئات مكتبة C القياسية غير مرغوب فيه، هناك استثناءات ملحوظة

فئات محددة للميراث

تحديد ما إذا كانت فئة المكتبة القياسية مخصصة للوراثة قد يكون أمرًا صعبًا. ومع ذلك، يمكن أن توفر الإرشادات التالية بعض الأفكار:

  • إذا كان الفصل لديه طرق افتراضية، فهو مرشح محتمل للوراثة.
  • تشير تصريحات "الصديق" المفرطة إلى مشكلات في التغليف، مما يؤدي إلى الوراثة. أقل ملاءمة.
  • يجب النظر في القوالب للتخصص بدلاً من الميراث.
  • الآليات القائمة على السياسات، مثل std::char_traits، تشير إلى أن الوراثة غير مقصودة.
متطلبات الفئة المشتقة

عند الوراثة من فئات المكتبة القياسية، يجب أن يكون مبدأ استبدال ليسكوف (LSP) يتم تطبيقها. يجب أن يتطابق السلوك الملحوظ، مثل وظيفة What() في std::exception، مع الفئة الأساسية. تعد المطابقة للمعيار أقل أهمية من الصحة في هذا السياق.

الاستنتاج

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

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3