के वर्चुअल फ़ंक्शन को ओवरराइड करने से रोकें स्थिति इस तरह है।विरासत वर्ग को बेस क्लास
class Interface
{
public:
virtual void foo() = 0;
}
class MyClass : Interface
{
public:
virtual void bar() = 0;
private:
void foo()
{
//Some private work and checks.
bar();
};
}
मैं चाहता हूँ कि मेरे उपयोगकर्ता एक वर्ग जो MyClass से विरासत पैदा करेगा, और वे वहाँ bar()
लागू करना होगा।
लेकिन मैं कैसे पहचान सकता हूं कि वे foo()
ओवरराइड नहीं करेंगे? क्योंकि मेरे foo()
का उपयोग करना मेरे लिए महत्वपूर्ण है।
क्या यह संकलित करता है? यदि ऐसा है, तो आपको कोई समस्या नहीं है, क्योंकि आपका फू निजी है। संपादित करें: आह, नहीं, यह संकलित नहीं करता है ... –
@Mrlister: निजी विधियां अभी भी ओवरराइड हो सकती हैं। –
सच है, क्षमा करें। तो कोई बात नहीं। जवाब पहले ही दिया गया है। –