#include <iostream.h>
//本程序用来测试构造函数中成员对象的初始化时机
class PClass
{
public:
PClass()
{
cout <<"PClass constructor"<<endl;
}
~PClass()
{
cout <<"PClass destructor"<<endl;
}
};
class Mem1
{
public:
Mem1()
{
cout <<"Mem1 constructor"<<endl;
}
~Mem1()
{
cout <<"Mem1 destructor"<<endl;
}
};
class Mem2
{
public:
Mem2()
{
cout <<"Mem2 constructor"<<endl;
}
~Mem2()
{
cout <<"Mem2 destructor"<<endl;
}
};
class Mem3
{
public:
Mem3()
{
cout <<"Mem3 constructor"<<endl;
}
~Mem3()
{
cout <<"Mem3 destructor"<<endl;
}
};
class OuterClass : public PClass
{
public:
Mem1 m1;
Mem2 m2;
Mem3 m3;
OuterClass()
{
cout <<"OuterClass constructor"<<endl;
}
~OuterClass()
{
cout <<"OuterClass destructor"<<endl;
}
};
int main()
{
OuterClass oc;
return 0;
}
PClass constructor
Mem1 constructor
Mem2 constructor
Mem3 constructor
OuterClass constructor
OuterClass destructor
Mem3 destructor
Mem2 destructor
Mem1 destructor
PClass destructor