c++类中的成员可以是另一个类的对象,我们称该成员为 对象成员
例如
class A{};
class B
{
A a;
};
B类中有对象a作为成员 a为对象成员
那么当创建对象时,A与B的构造函数和析构函数的顺序谁先谁后?
# include <iostream>
# include <string>
using namespace std;
class Phone//手机类
{
public:
string m_Pname;//品牌名称
Phone(string pname)
{
m_Pname = pname;
cout << "Phone的构造函数调用" << endl;
}
~Phone()
{
cout << "Phone的析构函数调用" << endl;
}
};
class Person//人类
{
public:
string m_Name;//姓名
Phone m_Phone;
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;
}
};
void test01()
{
Person p("张三", "苹果MAX");
cout << p.m_Name << "拿着:" << p.m_Phone.m_Pname << endl;
}
/* 当其它类对象作为本类成员,构造时候先构造类对象,再构造自身 */
/* 先析构自身 再析构类对象 */
int main()
{
test01();
return 0;
}