一、初始化的两种方式
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类型和引用类型在初始化参数列表中初始化。