是可能的未初始化的对象传递给父类像在下面的例子中引用初始化的对象iniside构造
class C
{
public:
C(int i):
m_i(i)
{};
int m_i;
}
class T
{
public:
T(C & c):
m_c(c)
{
};
C & m_c;
};
class ST : public T
{
public:
ST():
T(m_ci),
m_ci(999)
{
};
C m_ci;
};
在class T
构造,c
是未初始化的对象的引用。如果class T
在施工期间使用了c
对象,则可能会导致错误。但由于不是,这个编译和工作正常。我的问题是 - 它制动了某种范例还是好的设计指令?如果是这样,有什么选择,因为我发现分配父类在子类中所需的对象是有用的。
在附注中,我想知道为什么不能更改初始化顺序,以便在初始化某些成员之后调用基类构造函数。