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.

Respuestas a la pregunta(3)

Su respuesta a la pregunta