假设我有一个基类
class Base
{
public:
void A() {do stuff};
void B() {A(); do stuff};
};
和派生类
class Derived : public Base
{
public:
void A() {do things}
};
Derived derived1;
derived1.B();
B会调用基类的A还是派生类的A?
我怀疑 B 会调用基类的 A,为了让它使用新的重新定义的 A,我必须将其设为虚拟:
class Base
{
public:
virtual void A() {do stuff};
void B() {A(); do stuff};
};
这样对吗?这就是虚函数的用途吗?
最佳答案
是的,两方面都正确...
关于c++ - 这个继承类会调用哪个方法(虚函数)? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16026629/