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

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

相关推荐
jiunian_cn4 分钟前
【c++】多态详解
java·开发语言·数据结构·c++·visual studio
炯哈哈11 分钟前
【上位机——MFC】对话框
开发语言·c++·mfc·上位机
yousuotu24 分钟前
python如何提取Chrome中的保存的网站登录用户名密码?
java·chrome·python
溟洵29 分钟前
【C++ Qt】容器类(GroupBox、TabWidget)内附思维导图 通俗易懂
c++·qt
Code哈哈笑39 分钟前
【图书管理系统】深度讲解:图书列表展示的后端实现、高内聚低耦合的应用、前端代码讲解
java·前端·数据库·spring boot·后端
古月-一个C++方向的小白1 小时前
C++STl——list
c++·windows·list
郝开1 小时前
Java启动和停止jar文件sh脚本:自适应文件名方式启停 + 写死环境 启动;自适应文件名方式 + 命令行传参切换环境 启动
java·运维·jar
forestsea1 小时前
Maven 插件配置分层架构深度解析
java·架构·maven
无名之逆1 小时前
Hyperlane: Unleash the Power of Rust for High-Performance Web Services
java·开发语言·前端·后端·http·rust·web
潇-xiao1 小时前
Qt 验证自动释放 + 乱码问题(6)
c++·笔记·qt