c++中的初始化列表

一、初始化的两种方式

1. 常规赋值法

一种是较为常规的初始化如下:

cpp 复制代码
Person(int a, int b, int c) {
	this->a = a;
	this->b = b;
	this->c = c;
}

由于过于习以为常,所以这里就不再赘述。

2. 初始化列表法

这种方法相比于直接赋值法,成员变量a、b、c在进入构造函数体之前就已经被初始化了。

cpp 复制代码
class Person{
...
	int a;
	int b;
	int c;
...
Person(int a, int b, int c) :a(a), b(b), c(c) {}
}

这种方法的效率会更高一些,使用过程中需要注意的地方如下:

  • 只能在构造函数里使用该语法,可以给所有成员变量设置++初始化++参数;
  • 成员的构造顺序和在初始化列表中的顺序无关,与++在类中声明顺序++有关;

**注:**第二条的意思是,不管我在初始化列表中体现的是"a b c"还是"c a b",成员的构造顺序都是"a b c",这是由我在类中声明的顺序有关的。

  • const类型和引用类型在初始化参数列表中初始化。
相关推荐
哭泣方源炼蛊8 小时前
并查集进阶 P1(带权并查集,并查集分类)
数据结构·c++·算法·二进制·带权并查集
小小龙学IT9 小时前
ONNX Runtime 开源 AI 推理引擎深度解析:从模型部署到边缘 AI 加速的全栈实战
c++·人工智能·开源
五_谷_丰_登9 小时前
平衡二叉树(AVL)讲解二
数据结构·c++
知无不研9 小时前
std::function在使用时遇到的问题
c++·算法·st·function
码场老菜鸟10 小时前
C++ 指针的深度理解与应用
java·c++·算法
OPEN-F10 小时前
C++并发编程:条件变量与原子操作
java·开发语言·c++
神仙别闹10 小时前
基于 C++实现(控制台)车辆信息管理系统
开发语言·c++
fpcc10 小时前
数据结构和算法—最短路径的算法
数据结构·算法
重生之小比特11 小时前
【初阶C++】string
开发语言·c++
Dream Cosmos11 小时前
C++继承详解(上):继承规则、父子类转换与作用域隐藏
c++