#include <iostream>
using std::cout;
using std::endl;
class Base {
public:
Base() {
cout << "Constructor class Base" << endl;
}
~Base() {
cout << "Destructor class Base" << endl;
}
};
class Derived1 : public Base {
public:
Derived1() {
cout << "Constructor class Derived1" << endl;
}
~Derived1() {
cout << "Destructor class Derived1" << endl;
}
};
class Derived2 : public Derived1 {
public:
Derived2() {
cout << "Constructor class Derived2" << endl;
}
~Derived2() {
cout << "Destructor class Derived2" << endl;
}
};
int main()
{
Derived2 o;
return 0;
}
/*
run:
Constructor class Base
Constructor class Derived1
Constructor class Derived2
Destructor class Derived2
Destructor class Derived1
Destructor class Base
*/