Inheritance and constructors/destructors ======================================== A derived class doesn't inherit the base class's constructors and destructor. What happens when a derived-class object is created and destroyed: 1. Memory is allocated for the full object (that is, enough space to store the data members inherited from the base class plus the data members defined in the derived class itself) 2. The base class's constructor is called to allocate memory for the data members inherited from the base class (the constructor must be explicitly called in the derived class's constructor) 3. The derived class's constructor is then called to initialize the data members added in the derived class as described by the constructor 4. When the object is destroyed (goes out of scope or is deleted) the derived class's destructor is called on the object first 5. Then the base class's destructor is called on the object (Classes usually have virtual destructor) 6. Finally the allocated space for the full object is reclaimed