我想在调用父构造函数之前做一些处理。下面的例子说明了为什么我要这样做,尽管为了清楚起见我已经把它变得微不足道了。真正的父构造函数正在做一些渲染,但让我们先尝试解决这个问题。
本质上,当父构造函数调用覆盖函数但子数据尚未设置时,问题就出现了。我该如何解决?
class BaseClass {
public:
int myNumber;
BaseClass(){
myNumber = 0;
this->printNumber();
}
virtual void printNumber(){
printf("My number is %d\n", this->myNumber);
}
}
class ChildClass : BaseClass {
public:
float childNumber;
ChildClass(float myNumber) : BaseClass() {
this->childNumber = myNumber;
}
void printNumber(){
printf("My number is %f\n", this->childNumber);
}
}