C++基础入门—类初始列表和类对象作为类成员
小职 2022-02-07 来源 :csdn 阅读 782 评论 0

摘要:本篇主要介绍了C++基础入门—类初始列表和类对象作为类成员 ,通过具体的内容展现,希望对c++开发的学习有一定的帮助。

本篇主要介绍了C++基础入门—类初始列表和类对象作为类成员 ,通过具体的内容展现,希望对c++开发的学习有一定的帮助。

C++基础入门—类初始列表和类对象作为类成员

初始化列表

作用:C++提供了初始化列表语法,用来初始化属性

语法:


构造函数():属性1(值1),属性2(值2).....{   }

传统初始化操作:


#include<iostream>

using namespace std;

class Person

{

public:

//传统初始化操作

Person(int a, int b, int c)

{

m_A = a;

m_B = b;

m_C = c;

}

int m_A;

int m_B;

int m_C;

};

int main()

{

Person a(10, 30, 10);

cout << "a = " << a.m_A << endl;

cout << "b = " << a.m_B << endl;

cout << "c = " << a.m_C << endl;

system("pause");

return 0;

}


初始化列表:


#include<iostream>

using namespace std;

class Person

{

public:

Person(int a,int b,int c) :m_A(a), m_B(b), m_C(c)  //初始化列表

{


}

int m_A;

int m_B;

int m_C;

};

int main()

{

Person a(30,20,10);

cout << "a = " << a.m_A << endl;

cout << "b = " << a.m_B << endl;

cout << "c = " << a.m_C << endl;

system("pause");

return 0;

}


类对象作为类成员

C++类中成员可以是另一个类的对象,我们称该成员为成员对象

例如


class A{ };

class B

{

A a;

};


B类中有对象A作为成员,A为对象成员


那么创建B时,A和B的构造函数和析构顺序是谁先谁后呢?


#include<iostream>

#include<string>

using namespace std;

class Phone

{

public:

Phone(string Pname)

{

m_Pname = Pname;

cout << "调用Phone的构造函数" << endl;

}

~Phone()

{

cout << "调用Phone的析构函数" << endl;

}

string m_Pname;

};

class Person

{

public:

Person(string name,string Pname):m_name(name),m_phone(Pname)//隐式转换法

{

cout << "调用Person的构造函数" << endl;

}

~Person()

{

cout << "调用Person的析构函数" << endl;

}

string m_name;

Phone m_phone;


};

int main()

{

Person p("张三", "小米11");

cout << p.m_name << ":" << p.m_phone.m_Pname << endl;

return 0;

}


执行结果如下:

C++基础入门—类初始列表和类对象作为类成员


结论:


当其他类的对象作为本类成员,

构造时先构造其他类的对象,在构造自身

析构时先析构自身,再析构其他类对象


208小时视频教程,995份干货资料,扫码领取资料+高薪就业咨询

C++基础入门—类初始列表和类对象作为类成员


本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    ICP许可  沪B2-20190160

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程