Call virtual method from base class on object of derived type
class Base
{
public:
virtual void foo() const
{
std::cout << "Base";
}
};
class Derived开发者_开发知识库 : public Base
{
public:
virtual void foo() const
{
std::cout << "Derived";
}
};
Derived d; // call Base::foo on this object
Tried casting and function pointers but I couldn't do it. Is it possible to defeat virtual mechanism (only wondering if it's possible)?
To explicitly call the function foo()
defined in Base
, use:
d.Base::foo();
d.Base::foo();
Note that d.foo()
would call Derived::foo
regardless of whether foo
was virtual or not.
精彩评论