C++类中的成员可以是另一个类的对象,称该成员为对象成员
示例:
#include<iostream>
using namespace std;
#include<string>
class phone
{
public:
phone(string pname)
{
m_pname = pname;
cout<<"phone构造函数"<<endl;
}
~phone()
{
cout<<"phone析构函数"<<endl;
}
string m_pname;
};
class person
{
public:
person(string name,string pname):m_name(name),m_phone(pname)//初始化列表法赋值
//其中,m_phone(pname)计算机相当于做了phone m_phone = pname(隐式转换法)的运算
{
cout<<"person构造函数"<<endl;
}
~person()
{
cout<<"person析构函数"<<endl;
}
string m_name;
phone m_phone;//类对象作为类成员
};
void test1()
{
person p("张三","苹果13");
}
int main()
{
test1();
system("pause");
return 0;
}
运行结果如下:
可知:当其他类对象作为本类成员,先构造类对象,再构造自身,析构顺序则相反,先调用自身析构函数,再调用类对象析构函数