【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. 优劣

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

相关推荐
Howrun777几秒前
Linux_C++_日志实例
linux·运维·c++
LiRuiJie1 分钟前
深入剖析RocketMQ
java·rocketmq
头发还没掉光光1 分钟前
C语言贪吃蛇:基于Linux中ncurses库实的贪吃蛇小游戏
linux·c语言·开发语言
BlockChain8887 分钟前
SpringBoot实战一:10分钟搭建企业级用户管理系统(20000字完整项目)
java·spring boot·后端
消失的旧时光-194310 分钟前
第六课 · 6.1 从 JDBC 到 MyBatis:SQL 工程化是如何发生的?
java·sql·mybatis
梵尔纳多16 分钟前
第一个 3D 图像
c++·图形渲染·opengl
Jaxson Lin19 分钟前
Java编程进阶:线程基础与实现方式全解析
java·开发语言
夜喵YM19 分钟前
基于 Spire.XLS.Free for Java 实现无水印 Excel 转 PDF
java·pdf·excel
xiaoqider20 分钟前
C++继承
开发语言·c++
茶本无香22 分钟前
设计模式之五—门面模式:简化复杂系统的统一接口
java·设计模式