#include<iostream>
using namespace std;
class A
{
private:
int i;
public:
A(int i);
~A();
void set(int i);
};
A::A(int i):i(i)
{
cout <<"this is A()!"<<i<<endl;
}
void A::set(int ii)
{
i=ii;
}
A::~A( )
{
cout <<"this is ~A()!"<<i<<endl;
}
class test
{
private:
int i;
public:
A x;
test(int );
~test();
void set(int ii);
};
void test::set(int ii)
{
i=ii;
x.set(ii*ii);
}
test::test(int ii):i(ii) ,x(ii*ii)
{
cout<<"this is test()"<<i<<endl;
}
test::~test()
{
cout<<"this is ~test()"<<i<<endl;
}
int main ()
{ test t1(10);
return 0;
}
/****
使用对象组合后,在初始化新类之前,应该先初始化它的成员对象。
要初始化成员对象,就应该调用它的构造函数,
使用构造函数初始化列表!它相当于是一个伪的构造函数的现实调用。
*****/