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

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

相关推荐
Z1Jxxx12 小时前
0和1的个数
数据结构·c++·算法
重生之后端学习12 小时前
21. 合并两个有序链表
java·算法·leetcode·链表·职场和发展
南屿欣风12 小时前
Sentinel 熔断规则 - 异常比例(order & product 示例)笔记
java·开发语言
u01040583613 小时前
使用Java实现高性能的异步编程:CompletableFuture与Reactive Streams
java·开发语言
朔北之忘 Clancy13 小时前
2020 年 6 月青少年软编等考 C 语言二级真题解析
c语言·开发语言·c++·学习·青少年编程·题解·尺取法
消失的旧时光-194313 小时前
C++ 中的 auto 与 nullptr:不是语法糖,而是类型系统升级
开发语言·c++
专注VB编程开发20年13 小时前
c#Type数组转成字符串的名称
java·开发语言
中年程序员一枚13 小时前
多数据源的springboot进行动态连接方案
java·spring boot·后端
w***765513 小时前
SpringBoot集成MQTT客户端
java·spring boot·后端
fpcc13 小时前
跟我学C++中级篇—C++17中的元编程逻辑操作
c++·模板编程