Bra*_*rad 6 c++ overriding derived-class
我的问题最好用一个例子来解释.
例如,我有2个类:基类和派生类:
class baseClass
{
public:
baseClass()
{
foo();
}
virtual bool foo() { printf("baseClass"); return false;}
};
class derivedClass : public baseClass
{
public:
bool foo()
{
printf("derivedClass");
return true;
}
};
Run Code Online (Sandbox Code Playgroud)
当我创建一个实例时derivedClass,baseClass将调用构造函数,并将foo()从它的构造函数中调用它.问题是,baseClass的构造函数正在调用它自己,foo()并且没有被覆盖foo()的派生类已被覆盖.反正有没有让baseClass调用重写函数,而不是它自己的函数定义?
Syd*_*ius 18
您不应该从构造函数中调用虚方法,因为该对象尚未完全构造.本质上,派生类尚不存在,因此无法调用其方法.