当其他类对象作为本类成员,构造是先构造类对象,再构造自身,析构的顺序与构造相反
#include#include using namespace std; class Phone { public: Phone(string Name) { cout << "Phone的构造函数调用" << endl; m_PhoneName = Name; } ~Phone() { cout << "Phone的析构函数调用" << endl; } string m_PhoneName; }; class Person { public: //Phone m_Phone=p.Name 隐式转换法 //当其他类对象作为本类成员,构造是先构造类对象,再构造自身,析构的顺序与构造相反 Person(string name, string phoneName) :p_Name(name), p_Phone(phoneName) { cout << "Person的构造函数调用" << endl; } ~Person(){ cout << "Person的析构函数调用" << endl; } string p_Name; Phone p_Phone; }; void test01(){ Person p("张三", "vivo xs"); cout << p.p_Name << "拿着" << p.p_Phone.m_PhoneName << endl; } int main() { test01(); system("pause"); return 0; }
输出:
Phone的构造函数调用 Person的构造函数调用 张三拿着vivo xs Person的析构函数调用 Phone的析构函数调用 请按任意键继续. . .



