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
尝试了转换和函数指针,但我无法做到。是否有可能打败虚拟机制(只是想知道它是否可能)?
答案 0 :(得分:24)
要显式调用foo()
中定义的函数Base
,请使用:
d.Base::foo();
答案 1 :(得分:6)
d.Base::foo();
请注意,无论d.foo()
是否为虚拟,Derived::foo
都会调用foo
。