**前沿:**初始化列表就是构造函数的时候传入形参并对变量赋初值,类对象作为类成员就是创建Phone类,然后再创建Person类,并在Person类中实例化Phone对象。
废话不多说,贴上代码,注意看注释
//*****以下代码的思路就是在Person这个类中调用Phone的类,方法就是可以直接调用,并且相当于实例化Phone的类对象*******//
#include<iostream>
#include<string>
using namespace std;
class Phone
{
public:
string m_PhoneName; //先定义一个m_PhoneName变量,下面在构造函数中对这个变量赋值操作
Phone(string name) :m_PhoneName(name) //Phone的构造函数,直接把name赋值给m_PhoneName,完成初始化操作,这个就是初始化列表
{
cout << "Phone的构造函数" << endl;
}
~Phone()
{
cout << "Phone的析构函数" << endl;
}
};
class Person
{
public:
string m_person;
Phone m_Phone; //在Person的类中创建Phone的类对象,并实例化m_Phone对象,下面传参m_PhoneName会调用Phone的构造函数,完成赋初值操作
Person(string m_Personname, string m_PhoneName) :m_person(m_Personname), m_Phone(m_PhoneName) //这个也是初始化列表的操作
{
cout << "Person的构造函数" << endl;
}
~Person()
{
cout << "Person的析构函数" << endl;
}
void playgame()
{
cout << m_person << "使用" << m_Phone.m_PhoneName << "的手机" << endl;
//注意:输出的是m_person这个变量,还有m_Phone.m_PhoneName这个是调用Phone类的m_PhoneName的操作,这两个才是string类型
}
};
void test01()
{
Person p1("hlc先生", "honor20S");
p1.playgame();
}
int main()
{
test01();
system("pause");
}