मैंने अपने प्रश्नों के उत्तर के लिए इंटरनेट पर देखा लेकिन कोई भी नहीं मिला, इसलिए मैं यहां हूं।शुद्ध आभासी और ओवरराइड फ़ंक्शन (सी ++)
class baseClass
{
public:
virtual void myFunction() = 0;
}
class derivedClass : public baseClass
{
public:
virtual void myFunction() override;
}
यह सही है:
मेरी समारोह है कि एक शुद्ध आभासी से प्राप्त होने वाले ओवरराइड निर्दिष्ट करने के लिए यह सही है?
और मेरा दूसरा प्रश्न है: क्या मुझे अपने कार्य के लिए व्युत्पन्न क्लास में वर्चुअल निर्दिष्ट करना है, भले ही कोई भी वर्ग मेरी व्युत्पन्न कक्षा से विरासत में नहीं मिलेगा (यह अंतिम होगा)?
आपके उत्तरों के लिए बहुत बहुत धन्यवाद!
ठीक है, शेयर के लिए धन्यवाद। एक और सवाल: जब मैं derivedClass में ओवरराइड निर्दिष्ट नहीं करता हूं तो संकलक शिकायत क्यों नहीं कर रहा है? – Silouane
ओवरराइड विनिर्देशक सी ++ 11 में पेश किया गया है। यह आपको गलती से नए कार्यों को जोड़ने से रोकता है जो आपको लगता है कि ओवरराइड हैं।उदाहरण के लिए यदि आप गलती से अपने DerivedClass में रिटर्न प्रकार बदलते हैं तो संकलक ओवरराइड विनिर्देशक का उपयोग करते हुए एक त्रुटि के साथ आ जाएगा। यदि आप ओवरराइड विनिर्देशक का उपयोग नहीं कर रहे हैं तो आप एक नई वर्चुअल विधि घोषित कर देंगे। – Sambuca
समझ गया, धन्यवाद। – Silouane