【发布时间】:2013-02-28 06:49:35
【问题描述】:
是在初始化变量之前调用父类的构造函数,还是编译器会先初始化类的变量?
例如:
class parent {
int a;
public:
parent() : a(123) {};
};
class child : public parent {
int b;
public:
// question: is parent constructor done before init b?
child() : b(456), parent() {};
}
【问题讨论】:
-
那么你的问题是你是否可以通过初始化列表布局来控制基类构造函数和派生类成员变量的初始化顺序?
-
一个想法,您可以通过在父构造函数和成员变量的构造函数中打印到控制台来检查这一点,但现在您得到了闪亮的答案。
-
@WhozCraig 没有。成员变量的控制是通过位置来完成的(先到先得),但我不确定是基类还是成员在先。
-
标签: c++ class inheritance