如何通过指向派生类的基类指针调用Base类方法

coo*_*ake 13 c++ polymorphism

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? */
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*ieu 10

上面的两个回答都是正确的......但要小心,如果你需要这样做,也许你对概念或设计有很大的问题......

  • 你说得对:基本上这意味着你需要两种方法. (2认同)

Aam*_*mir 7

您可以通过范围解析运算符来完成 ::

像这样的东西:

pBase->Base::foo()
Run Code Online (Sandbox Code Playgroud)