2009-07-16 17 views
13
class Base 
{ 
    public: 
    virtual void foo() 
    {} 
}; 

class Derived: public Base 
{ 
    public: 
    virtual void foo() 
    {} 
}; 

int main() 
{ 
    Base *pBase = NULL; 
    Base objBase; 
    Derived objDerived; 

    pBase = &objDerived; 
    pBase->foo(); 

    /*Here Derived class foo will be called, but i want this to call 
    a base class foo. Is there any way for this to happen? i.e. through 
    casting or something? */ 
} 

उत्तर

7

आप गुंजाइश संकल्प ऑपरेटर के माध्यम से यह कर सकते हैं ::

कुछ इस तरह:

pBase->Base::foo() 
10

उपरोक्त दोनों प्रतिक्रियाएं सही हैं ... लेकिन सावधान रहें, अगर आपको ऐसा करने की ज़रूरत है, तो हो सकता है कि आपको गर्भधारण या डिजाइन के बारे में बड़ी समस्या हो ...

+2

आप सही हैं: अनिवार्य रूप से इसका मतलब है कि आपको दो तरीकों की आवश्यकता है। – xtofl

संबंधित मुद्दे