给定代码:
class A{
public:
void callFirst()
{
callSecond();
}
void callSecond()
{
cout << "This an object of class A." << endl;
}
};
class B : public A{
public:
void callSecond()
{
cout << "This is an object of class B." << endl;
}
};
int main()
{
B b;
b.callFirst();
return 0;
}
我得到的输出:
This an object of class A.
我该怎么做,以便在我调用派生类的继承方法时,除了重载第一个方法外,它不会依次调用基类的方法而不是重载的方法?
您必须标记callSecond()
成员函数virtual
,否则最终将产生编译时绑定(与运行时绑定)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句