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

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

相关推荐
JAY_LIN——88 小时前
指针-数组
c语言·排序算法
roman_日积跬步-终至千里8 小时前
【人工智能导论】02-搜索-高级搜索策略探索篇:从约束满足到博弈搜索
java·前端·人工智能
大学生资源网9 小时前
java毕业设计之儿童福利院管理系统的设计与实现(源码+)
java·开发语言·spring boot·mysql·毕业设计·源码·课程设计
JasmineWr9 小时前
JVM栈空间的使用和优化
java·开发语言
Hello.Reader9 小时前
Flink SQL DELETE 语句批模式行级删除、连接器能力要求与实战避坑(含 Java 示例)
java·sql·flink
爱笑的眼睛119 小时前
从 Seq2Seq 到 Transformer++:深度解构与自构建现代机器翻译核心组件
java·人工智能·python·ai
Spring AI学习9 小时前
Spring AI深度解析(10/50):多模态应用开发实战
java·spring·ai
进阶的猪9 小时前
STM32 使用HAL库SPI读写FLASH(W25Q128JV)数据 Q&A
c语言·stm32·单片机
apocelipes10 小时前
从源码角度解析C++20新特性如何简化线程超时取消
c++·性能优化·golang·并发·c++20·linux编程
ozyzo10 小时前
求1~n的累加和
c++