【C/C++】关于C++构造函数成员初始化

文章目录

      • [1. 第一种方式](#1. 第一种方式)
      • [2. 第二种方式](#2. 第二种方式)
      • [3. 优劣](#3. 优劣)

1. 第一种方式

成员初始化列表。在构造函数的参数列表后使用冒号分割的一组初始化语句。

c++ 复制代码
class my_class {
public:
	my_class(int a, int b): m_x(a), m_y(b) {
		/*....*/
	}
private:
	int m_x;
	int m_y;
};

2. 第二种方式

在构造函数内部使用赋值语句进行初始化变量。

c++ 复制代码
class my_class{
public:
	my_class(int a, int b) {
		m_x = a;
		m_y = b;
	}
private:
	int m_x;
	int m_y;
};

3. 优劣

成员初始化列表的效率比在构造函数体内部使用赋值语句要高,因为成员初始化列表可以直接初始化成员变量,而不需要先调用默认构造函数再赋值。因此,在实际开发中,应该尽可能使用成员初始化列表来初始化类的成员变量。

相关推荐
QQ_21696290967 小时前
基于C#(Asp.net)电竞陪玩信息管理系统的设计与实现
java·大数据·spring boot·微信小程序·c#·云计算·asp.net
vx_Biye_Design7 小时前
springbootNBA数据分析系统平台42434-计算机课程设计、毕业设计
java·vue.js·spring boot·python·django·课程设计·express
Q26433650237 小时前
【有源码】基于springboot的知识产权管理系统-知识产权咨询问答管理系统-知识产权价值评估管理系统
java·spring boot·mysql·spring·毕业设计·javaweb·课程设计
大侠归来9 小时前
C 语言 | 在函数中操作数组
c语言·c++·算法
朝朝辞暮i15 小时前
C++ 第 23 课:class —— 开始真正进入面向对象
开发语言·c++·算法
leikooo15 小时前
用餐厅和盘子理解栈和堆
java·数据结构·链表·rust
小师兄吃牛肉16 小时前
C语言篇:宏
c语言·开发语言
郑同学的笔记16 小时前
【c++随笔28】strcmp 和 memcmp对比
开发语言·c++
随意起个昵称16 小时前
【背包dp】输出方案路径
c++·动态规划
炸膛坦客16 小时前
单片机开发工具篇:(十四)配置输出 .map 文件及其本地路径
c语言·单片机·嵌入式硬件