#include <iostream>
using std::cout;
using std::endl;
class Base1 {
public:
Base1() {
cout << "Constructor Base1" << endl;
}
~Base1() {
cout << "Destructor Base1" << endl;
}
};
class Base2 {
public:
Base2() {
cout << "Constructor Base2" << endl;
}
~Base2() {
cout << "Destructor Base2" << endl;
}
};
class Base3 {
public:
Base3() {
cout << "Constructor Base3" << endl;
}
~Base3() {
cout << "Destructor Base3" << endl;
}
};
class Derived : public Base1, public Base2, public Base3 {
public:
Derived(void) : Base1(), Base2(), Base3()
{
cout << "Constructor Derived" << endl;
};
~Derived(void)
{
cout << "Destructor Derived" << endl;
};
};
int main()
{
Derived o;
return 0;
}
/*
run:
Constructor Base1
Constructor Base2
Constructor Base3
Constructor Derived
Destructor Derived
Destructor Base3
Destructor Base2
Destructor Base1
*/