C++: Multilevel Inheritance and constructors.