#includeclass SomeOther { public: SomeOther() { int static i = 0; cout << ++i << " SomeOther class constructor called" << endl << endl; } ~SomeOther() { cout << "SomeOther class destructor called" << endl << endl; } }; class Base { private: SomeOther x; public: Base(){ cout << "Base class constructor called" << endl << endl; } ~Base() { cout << "Base class destructor called" << endl << endl; } }; class Derived: public Base { protected: SomeOther x; public: Derived(){ cout << "Derived class constructor called" << endl << endl; } ~Derived(){ cout << "Derived class destructor called" << endl << endl; } }; void main() { Derived D; }
/* 1 SomeOther class constructor called Base class constructor called 2 SomeOther class constructor called Derived class constructor called Derived class destructor called SomeOther class destructor called Base class destructor called SomeOther class destructor called Press any key to continue */