#include <iostream>
using std::cout;
using std::endl;
class Base {
int n;
public:
Base(int _n) {
cout << "class Base constructor" << endl;
n = _n;
}
~Base() {
cout << "class Base destructor" << endl;
}
void print_base() {
cout << "class Base: " << n << endl;
}
};
class Derived : public Base {
int m;
public:
Derived(int _m, int _n) : Base(_n) {
cout << "class Derived constructor" << endl;
m = _m;
}
~Derived() {
cout << "class Derived destructor" << endl;
}
void print_derived() {
cout << "class Derived: " << m << endl;
}
};
int main()
{
Derived o(12, 99);
o.print_base();
o.print_derived();
return 0;
}
/*
run:
class Base constructor
class Derived constructor
class Base: 99
class Derived: 12
class Derived destructor
class Base destructor
*/