Inheritance
Constructors, destructor and data members
A class is a user defined type, hence it can play the
role of a data member
#include
class 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
*/
Go Back to Inheritance