【发布时间】:2011-05-03 15:49:39
【问题描述】:
我的问题可能最好用一个例子来解释。
例如,我有 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 的实例时,baseClass 中的构造函数将被调用,foo() 将从它的构造函数中调用。问题是,基类的构造函数调用了它自己的foo(),而没有被派生类覆盖的覆盖foo()。有没有办法让 baseClass 调用被覆盖的函数,而不是它自己的函数定义?
【问题讨论】:
标签: c++ overriding derived-class