1、初始化列表
语法:
构造函数():属性1(值1),属性2(值2)... {}
2、类对象作为类成员
#include <iostream>
using namespace std;
class Phone
{
public:
string m_PhoneName;
Phone(string name)
{
m_PhoneName = name;
cout<<"Phone构造"<<endl;
}
~Phone()
{
cout<<"Phone析构"<<endl;
}
};
class Person
{
public:
string m_Name;
Phone m_Phone;//生成对象
Person(string name,string pName);
~Person();
playGame();
};
//初始化列表等同于 m_Name = name; m_Phone = pName;
Person::Person(string name,string pName):m_Name(name),m_Phone(pName){
cout << "Person构造" << endl;
};
Person::~Person(){
cout << "Person析构" << endl;
};
Person::playGame(){
cout<<m_Name<< "使用" << m_Phone.m_PhoneName << "牌手机!" << endl;
};
int main(){
//当类中成员是其他类对象时,我们称该成员为 对象成员
//构造的顺序是 :先调用对象成员的构造,再调用本类构造
//析构顺序与构造相反
Person p("张三","苹果");
p.playGame();
return 0;
}