Ссылка на неинициализированный объект iniside constructor
Можно передать неинициализированный объект в родительский класс, как в следующем примере
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
объект во время строительства, это, возможно, приведет к ошибке. Но так как это не так, это компилируется и работает нормально. Мой вопрос - это тормозит какую-то парадигму или хорошие директивы дизайна? Если так, каковы альтернативы, потому что я нашел полезным выделить объект, требуемый родителем в подклассе.
Кстати, мне интересно, почему невозможно изменить порядок инициализации, чтобы конструктор базового класса вызывался после инициализации некоторых членов.