当为我的一个类调用构造函数时,我遇到了一个奇怪的错误。本质上,我正在做的是:
我有一个类“A”,它有两个类型为“B”、“C”的成员变量。“C”必须由“B”类型的成员启动。所以构造函数必须是:
A::A():
c(b)
{}
如果类的布局如下:
class A
{
B b;
C c;
}
但是如果类的布局如下:
class A
{
C c;
B b;
}
我的第一个猜测是,如果我要在构造函数中初始化 c(b),当然必须在 c 之前创建 b。我不知道这是否正确。是否在分配任何成员变量之前调用了构造函数?还是先分配在构造函数中引用的成员变量,然后在构造函数末尾分配任何剩余的未引用成员变量(例如,如果构造函数中未引用另一个成员变量“C c2”)?
我在 Visual Studio 2010 上。