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类型和引用类型在初始化参数列表中初始化。
相关推荐
code_whiter14 小时前
C++4(类与对象下篇)
c++
ccLianLian14 小时前
数论·快速幂和逆元
数据结构·算法
牢姐与蒯14 小时前
vector的实现
数据结构
crescent_悦14 小时前
C++:Invert a Binary Tree
开发语言·c++
_饭团14 小时前
C 语言数据存储全解析:原反补码、大小端与 IEEE 754 浮点数
c语言·数据结构·算法·leetcode·面试·蓝桥杯·学习方法
2401_8732046514 小时前
C++与Docker集成开发
开发语言·c++·算法
实心儿儿14 小时前
C++ —— map和set的使用
开发语言·c++
j_xxx404_14 小时前
力扣--分治(归并排序)算法题II:计算右侧小于当前元素的个数,翻转对(无痛通关困难题)
开发语言·数据结构·c++·算法·leetcode
阿梅要做最快乐的仔14 小时前
链表环问题:快慢指针的经典应用
数据结构·链表
Irissgwe14 小时前
Mysql数据库基础
数据库·c++·mysql·mysql数据库基础