#include using namespace std; class A { int a; public: A(const A& aa) { a = aa.a; cout << "Copy-ctor A, a = " << a << endl; } A(int aa = 0) { a = aa; cout << "Def-ctor A, a = " << a << endl; } void showA() { cout << "a = " << a; } }; class B: public A { int b; public: B(const B& bb) : A(bb) { b = bb.b; cout << "Copy-ctor B, b = " << b << endl; } B(int bb = 1) : A(1) { b = bb; cout << "Def-ctor B, b = " << b << endl; } void showB() { showA(); cout << ", b = " << b << endl; } }; int main() { B b1(2); b1.showB(); B b2(b1); b2.showB(); }