فيديو: Tesla Model S driver caught sleeping at the wheel while on Autopilot 2025
في C ++، فقط لأنك تعتقد أن استدعاء وظيفة معينة لا بد أن يكون متأخرا لا يعني أنه. إذا لم يتم الإعلان عن نفس الحجج في الفئات الفرعية، لا يتم تجاوز مهام العضو بشكل متعدد الأشكال، سواء تم إعلانها الظاهرية أم لا.
استثناء واحد لقاعدة إعلان متطابقة هو أنه إذا كان العضو يعمل في فئة الأساس بإرجاع مؤشر أو مرجع إلى كائن فئة أساسية قد ترجع دالة عضو تم تجاوزه في فئة فرعية مؤشر أو مرجع إلى كائن الفئة الفرعية. وبعبارة أخرى، فإن وظيفة ميكاكوبي () متعددة الأشكال، على الرغم من أن نوع إرجاع الدالتين يختلفان:
كلاس بيس {بوبليك: // ريتورن a كوبي أوف ذي كيرنت أوبجيكت بيس * ميكيكوبي ()؛}؛ كلاس الفئة الفرعية: بوبليك بيس {بوبليك: // ريتورن a كوبي أوف ذي كيرنت أوبجيكت سوبكلاس * ماكيكوبي ()؛}؛ فواد فن (بيس & بك) {بيس * بكوبي = بك. اعمل نسخة()؛ // بروسيد أون …}
في الواقع العملي، هذا أمر طبيعي تماما. يجب أن تقوم الدالة ميكيكوبي () بإرجاع كائن من النوع سوبكلاس ، على الرغم من أنها قد تتجاوز باسكلاس:: ميكاكوبي () .
هذا العمل من اتخاذ قرار بصمت عندما يتم تجاوز وظيفة وعندما لا يكون مصدر خطأ في C ++؛ لدرجة أن معيار 2011 قدم واصف تجاوز أن المبرمج يمكن استخدامها للإشارة إلى نيتها لتجاوز وظيفة فئة الأساس.
يولد C ++ خطأ في برنامج التحويل البرمجي إذا تم إلغاء وظيفة ما، ولكن لا يؤدي في الواقع إلى تجاوز وظيفة فئة أساسية لسبب ما (مثل الوسيطة غير المتطابقة) كما في المثال التالي: >
هذا المقتطف يولد خطأ وقت تجميع لأن الأسلوب غرادستودنت:: أدكورسغريد (تعويم) أعلن تجاوز لكنه لا، في الواقع، تجاوز وظيفة الطبقة الأساسية الطالب:: أدكورسغريد (مزدوج) لأن أنواع الوسيطة دون ' ر المباراة.
النهائية ، حتى لو تجاوزت هذه الوظيفة نفسها بعض وظائف الطبقة الأساسية السابقة، كما هو موضح في ما يلي > بوستدوك الصف: كلاس غرادستودنت: بوبليك ستودنت {بوبليك: فيرتوال فواد أدكورسغريد (دوبل غريد) فينال؛}؛ كلاس بوستدوك: بوبليك غرادستودنت {بوبليك: فيرتوال فواد أدكورسغريد (دوبل غريد)؛}؛ منذ الطالب:: أدكورسغريد () يتم وضع علامة نهائية
،
إعلان بوستدوك:: أدكورسغريد () يولد خطأ لأنه يحاول تجاوز الطالب الأسلوب.
فئة غرادستودنت فينال: بوبليك ستودنت وهذا يؤثر على أكثر من مجرد الطرق الافتراضية للفئة. لا يمكن أن يكون
نهائي
فئة موروثة من الإطلاق.
