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

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

相关推荐
海狸老先生20 分钟前
Apache Tomcat样例目录session操纵漏洞解读
java·网络安全·tomcat
Jinkxs2 小时前
基础14-Java集合框架:掌握List、Set和Map的使用
java·list
遗憾皆是温柔3 小时前
3.JVM,JRE和JDK的关系是什么
java·开发语言·jvm·面试
洛可可白4 小时前
Spring Boot 应用结合 Knife4j 进行 API 分组授权管理配置
java·spring boot·后端
22:30Plane-Moon5 小时前
初识SpringBoot
java·spring boot·后端
黄昏晓x5 小时前
数据结构----排序
java·数据结构·排序算法
97zz5 小时前
项目配置文件正确但是启动失败,报配置文件内容错误或中间件地址与实际不符
java·中间件·springboot
清朝牢弟5 小时前
Ubuntu系统VScode实现opencv(c++)图像像素类型转换和归一化
c++·opencv·ubuntu
黑色的山岗在沉睡6 小时前
P1948 [USACO08JAN] Telephone Lines S
数据结构·c++·算法·图论
小醉你真好7 小时前
Spring Boot + ShardingSphere 分库分表实战
java·spring boot·后端·mysql