little add-on: using getch() messes everything up.
this is how I've modified the end of your code:
Code:
class derived2: public base1,public derived1
{
protected:
int z;
public:
derived2(){cout <<"default derive2 constructor\n";}
derived2(int a,int b,int c):
base1(a),
derived1(b)
{
z=c;
cout<<"Constructing derived2..."<<z<<endl;
}
~derived2(){cout<<"Destroying derived2..."<<endl;}
};
int main()
{
cout << "code: derived2 d1;\n";
derived2 d1;
cout << "code: d1=derived2(1,2,3);\n";
d1=derived2(1,2,3);
cout<<"Executing getch()..."<<endl;
getch();
return(0);
}
this is the output:
Code:
code: derived2 d1;
default derive2 constructor
code: d1=derived2(1,2,3);
Constructing base1...1
Constructing derived1...2
Constructing derived2...3
Destroying derived2...
Destroying derived1...
Destroying base1...
Executing getch()...
Destroying derived2...
Destroying derived1...
Destroying base1...
Press any key to continue