Referencia al constructor iniside del objeto no inicializado
Es posible pasar un objeto no inicializado a una clase primaria como en el siguiente ejemplo
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;
};
Enclass T
constructor,c
es una referencia al objeto no inicializado. Siclass T
estaban usandoc
Objeto durante la construcción, esto posiblemente conduciría a un error. Pero como no es así, esto se compila y funciona bien. Mi pregunta es: ¿rompe algún tipo de paradigma o buenas directivas de diseño? Si es así, cuáles son las alternativas, porque me pareció útil asignar un objeto requerido por el padre en una subclase.
En una nota al margen, me pregunto por qué no es posible cambiar el orden de inicialización, por lo que ese constructor de clase base se llamaría después de la inicialización de algunos miembros.