#include <iostream>
using std::cout;
using std::endl;
class Base {
protected:
int i;
public:
Base(int _i) {
i = _i;
cout << "Base constructor" << endl;
}
~Base() {
cout << "Base Destructor" << endl;
}
};
class Derived : public Base {
int j;
public:
Derived(int _j, int _i) : Base(_i) {
j = _j;
cout << "Derived constructor" << endl;
}
~Derived() {
cout << "Derived Destructor" << endl;
}
void print() {
cout << i << " " << j << endl;
}
};
int main()
{
Derived o(87, 23);
o.print();
return 0;
}
/*
run:
Base constructor
Derived constructor
23 87
Derived Destructor
Base Destructor
*/