It is possible to pass uninitialized object to a parent class like in the following example
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;
};
In class T constructor, c is a reference to uninitialized object. If class T were using c object during construction, this would possibly lead to an error. But since it's not, this compiles and works fine. My question is - does it brake some kind of paradigm or good design directives? If so, what are the alternatives, because I found it useful to allocate an object required by parent in a subclass.
On a side note, I wonder why it's not possible to change initialization order, so that base class constructor would be called after initialization of some members.