【发布时间】:2010-10-22 12:42:01
【问题描述】:
可以将未初始化的对象传递给父类,如下例所示
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 对象,这可能会导致错误。但既然不是这样,它可以编译并正常工作。我的问题是——它会破坏某种范式或良好的设计指令吗?如果是这样,有什么替代方案,因为我发现在子类中分配父类所需的对象很有用。
顺便说一句,我想知道为什么不能更改初始化顺序,以便在某些成员初始化后调用基类构造函数。
【问题讨论】:
标签: c++ constructor reference initialization