#include #include "classes.h" namespace { void print(const char* fn_name, int val1) { std::cout << "Executing " << fn_name << ". Value = " << val1 << std::endl; } } //------------ // VBase VBase::VBase() : vb_x(2) { print("VBase::VBase", vb_x); } VBase::VBase(int x) : vb_x(x) { print("VBase::VBase(int)", vb_x); } VBase::~VBase() { print("VBase::~VBase", vb_x); } void VBase::vb_a() { print("VBase::vb_a", vb_x); } //------------ // Derived1 Derived1::Derived1() : VBase(3), d1_x(5) { print("Derived1::Derived1", d1_x); } Derived1::Derived1(int x) : VBase(7), d1_x(x) { print("Derived1::Derived1(int)", d1_x); } Derived1::~Derived1() { print("Derived1::~Derived1", d1_x); } void Derived1::vb_a() { print("Derived1::vb_a", d1_x); } void Derived1::d1_a() { print("Derived1::d1_a", d1_x); } void Derived1::d1_b() { print("Derived1::d1_b", d1_x); }