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

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

相关推荐
vczxh1 分钟前
c++ templates常用函数
开发语言·c++
科研小白_d.s2 分钟前
intellij-idea创建html项目
java·html·intellij-idea
XXXJessie3 分钟前
c++249多态
java·c++·servlet
jianglq5 分钟前
深入剖析:C++类对象的内存布局与优化
c++
喝旺仔la7 分钟前
VSCode的使用
java·开发语言·javascript
qing_04060318 分钟前
C++——模板初阶
开发语言·c++·模板
多思考少编码30 分钟前
【LGR-200-Div.4】洛谷入门赛 #27 A - H题解,包含(C++, Go语言)
开发语言·c++·golang·洛谷·算法竞赛
骆晨学长31 分钟前
基于Springboot的助学金管理系统设计与实现
java·spring boot·后端
尘浮生35 分钟前
Java项目实战II基于Java+Spring Boot+MySQL的大型商场应急预案管理系统(源码+数据库+文档)
java·开发语言·数据库·spring boot·spring·maven·intellij-idea
dawn1912281 小时前
SpringMVC 中的域对象共享数据
java·前端·servlet