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

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

相关推荐
LYS_061815 小时前
寒假学习(2)(C语言2+模数电2)
c语言·学习·算法
小北方城市网15 小时前
Spring Boot 接口开发实战:RESTful 规范、参数校验与全局异常处理
java·jvm·数据库·spring boot·后端·python·mysql
千寻技术帮15 小时前
10399_基于SpringBoot的智慧养老院管理系统
java·spring boot·后端·源码·安装·代码
m0_5649149215 小时前
Altium Designer,AD如何修改原理图右下角图纸标题栏?如何自定义标题栏?自定义原理图模版的使用方法
java·服务器·前端
飞升不如收破烂~15 小时前
# Spring Boot 跨域请求未到达后端问题排查记录
java·spring boot·后端
AllData公司负责人15 小时前
【亲测好用】数据集成管理能力演示
java·大数据·数据库·开源
阿蒙Amon15 小时前
C#每日面试题-值传递和引用传递的区别
java·面试·c#
aloha_78916 小时前
乐信面试准备
java·spring boot·python·面试·职场和发展·maven
Knight_AL16 小时前
Spring Boot 多模块项目中优雅实现自动配置(基于 AutoConfiguration.imports)
java·spring boot·mybatis
短剑重铸之日16 小时前
《RocketMQ研读》面试篇
java·后端·面试·职场和发展·rocketmq