Es posible pasar objeto no inicializado a una clase padre como en el ejemplo siguientereferencia al objeto no inicializado 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;
};
En class T
constructor, c
es una referencia a objeto no inicializado. Si class T
usaba el objeto c
durante la construcción, esto posiblemente generaría un error. Pero como no es así, esto compila y funciona bien. Mi pregunta es: ¿frena 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 lateral, me pregunto por qué no es posible cambiar el orden de inicialización, por lo que se llamaría al constructor de la clase base después de la inicialización de algunos miembros.