मुझे उत्सुकता है कि क्यों नया सी ++ 11 कीवर्ड override
virtual
के बजाय const
के साथ विधिवत घोषणा के बाद दिखाई देने के लिए मजबूर होना चाहिए?वर्चुअल के समान स्थान की बजाय सदस्य घोषणा के बाद ओवरराइड क्यों किया गया था?
class SomeBaseClass {
virtual void DoPolymorphicBehavior() = 0;
...
class SomeDerrivedClass : public SomeBaseClass {
void DoPolymorphicBehavior() override;
...
क्यों में दुनिया एक ही सटीक स्थिति में इसकी अनुमति नहीं है (और यहां तक कि बजाय) virtual
class SomeBaseClass {
virtual void DoPolymorphicBehavior() = 0;
...
class SomeDerrivedClass : public SomeBaseClass {
override void DoPolymorphicBehavior();
...
यह मैं व्युत्पन्न वर्ग के लिए खोज मेरी स्रोत फ़ाइलों में & की जगह करने की अनुमति दी है | नए कीवर्ड का उपयोग करने के लिए और इस प्रकार त्रुटियों को खोजने में संकलक से सहायता प्राप्त करें। हालांकि, क्योंकि सी ++ 11 इसे सिंटैक्टिक रूप से एक अलग स्थिति में रखता है, इसलिए मुझे नई कंपाइलर सुविधा से कोई लाभ प्राप्त करने के लिए सचमुच स्रोत कोड की हजारों लाइनों को मैन्युअल रूप से अपडेट करना होगा।
निश्चित रूप से इस विकल्प के पीछे एक अच्छा कारण था?
यदि कोई है (वहां होना चाहिए) तो मैं इसके पीछे तर्क जानना चाहता हूं। यदि पूछने के लिए कोई बेहतर जगह है, तो कृपया दिशा को इंगित करें ... – Mordachai
मुझे नहीं पता कि इन भाषा डिज़ाइन प्रश्नों को बंद करने के लिए कौन से वोट वोट करते हैं। यदि वैध कारण है तो ओपी को पता नहीं है, तो यह सुनने में हस्तक्षेप कर सकता है। यदि वहां नहीं है और यह पासा फेंक रहा है, या स्वाद द्वारा तय किया गया है, तो यह भी एक जवाब है। और मुझे मत बताओ कि कोई भी नहीं जानता कि समिति वास्तव में क्या सोच रही थी, वहां पर्याप्त लोग हैं जो जानते हैं। मेरे द्वारा +1, इस विकल्प के बारे में सोचा नहीं था। –