C++类中的成员可以是另一个类的对象,我们称该成员为 对象成员
例如:
B类中有对象a作为成员,a为对象成员
那么当创建B的对象时,A和B的构造和析构的顺序应该谁先谁后?
当其他类的对象作为本类的成员,构造时候先构造类对象,再构造本类的对象
析构时,先析构本类对象,再析构其他类的对象
示例
原代码
#include<iostream>
using namespace std;
//类对象作为类成员
//手机类
class Phone
{
public:
Phone(string PName)
{
m_PName = PName;
cout << "class Phone的构造函数调用" << endl;
}
~Phone()
{
cout << "class Phone的析构函数调用" << endl;
}
//手机品牌名称
string m_PName;
};
//人类
class Person
{
public:
//Phone m_Phone = pName 隐式转换法(函数的分类以及调用)
Person(string name, string pName) :m_Name(name), m_Phone(pName)
{
cout << "class Person的构造函数调用" << endl;
}
~Person()
{
cout << "class Person的析构函数调用" << endl;
}
//姓名
string m_Name;
//手机
Phone m_Phone;
};
void test01()
{
Person p("张三", "华为");
cout << p.m_Name << "拿着: " << p.m_Phone.m_PName << endl;
}
int main()
{
test01();
system("pause");
return 0;
}
运行结果