我的问题可能最好用一个例子来解释。
例如,我有 2 个类:一个基类和一个派生类:
class baseClass
{
public:
baseClass()
{
foo();
}
virtual bool foo() { printf("baseClass"); return false;}
};
class derivedClass : public baseClass
{
public:
bool foo()
{
printf("derivedClass");
return true;
}
};
当我创建 的实例时,将调用derivedClass
in 的构造函数,并将从它的构造函数中调用。问题是,基类的构造函数正在调用它自己的构造函数,并且没有被派生类重写的重写。无论如何让 baseClass 调用被覆盖的函数,而不是它自己的函数定义?baseClass
foo()
foo()
foo()