मैं एक भयानक awesome C++11 tutorial पढ़ रहा हूँ और जब तक final
कीवर्ड समझा लेखक इस उदाहरण प्रदान करता है:यह एक वर्ग के कोई आधार वर्ग है कि में आभासी समारोह के लिए अंतिम कीवर्ड जोड़ने के लिए कोई मतलब है (व्युत्पन्न नहीं है)
struct B {
virtual void f() const final; // do not override
virtual void g();
};
struct D : B {
void f() const; // error: D::f attempts to override final B::f
void g(); // OK
};
तो क्या यह final
कीवर्ड का उपयोग करके समझ में आता है? मेरी राय में आप यहां वर्चुअल कीवर्ड का उपयोग करने से बच सकते हैं और ओवरराइड होने से f()
को रोक सकते हैं।
मैं इसे दस्तक नहीं देना चाहता, क्योंकि एक गुरु साथ आ सकता है और एक केस-केस पेश कर सकता है जहां यह कुछ वास्तव में अस्पष्ट संकलन त्रुटि हल करता है ... लेकिन ऐसा करने के लिए मूर्खतापूर्ण चीज दिखती है। – StoryTeller
संभावित डुप्लिकेट [क्या वर्चुअल और फाइनल दोनों के रूप में बेस क्लास फ़ंक्शन को चिह्नित करने में कोई समझ है?] (Https://stackoverflow.com/questions/16739135/is-there-any-sense-in-marking-a-base -क्लास-फ़ंक्शन-ए-वर्चुअल-एंड-फाइनल) –
असल में अधिक डुप्लिकेट हैं, उदाहरण के लिए [अंतिम वर्चुअल फ़ंक्शन का बिंदु क्या है?] (Https://stackoverflow.com/questions/11704406/) – Ruslan