//对象作为类的数据成员
#include <iostream>
#include <cstring>
using namespace std;

class stringa{ //声明一个类
private:
char *str;
public:
stringa(char *s ="...")//构造函数,默认初始化
{
str=new char[strlen(s)+1];
strcpy(str,s);
cout<<"构造string\n";
}
void print()//成员函数
{
cout<<str<<endl;
}

~stringa()//析构函数
{
cout<<"析构string\n";
delete str;
}
};

class girl //声明另外一个类
{
private:
stringa name; //类对象成员
int age;

public:
girl(char *st,int ag):name(st),age(ag)//必须用初始化列表进行初始化
{//构造函数
// age=ag;
cout<<"构造girl\n";
}
void print()
{//成员函数
name.print();
cout<<"age:"<<age<<endl;
}
~girl()//析造函数
{
cout<<"析构girl\n";
}
};

int main()
{
stringa sss;
cout<<"+++++++++"<<endl;
girl obj("chao hao",8);
obj.print();
return 0;
}