D
G
O
L

初始化列表

初始化列表

构造函数的执行可以分成两个阶段:初始化阶段和计算阶段(初始化阶段先于计算阶段)。

l 初始化阶段:全部的成员都会在初始化阶段初始化。

l 计算阶段:一般是指用于执行构造函数体内的赋值操作。

构造函数除了参数列表和函数体之外,还可以有初始化列表。

初始化列表的语法:


类名(形参列表):成员一(值一), 成员二(值二),..., 成员n(值n)

{......}

注意:

1)如果成员已经在初始化列表中,则不应该在构造函数中再次赋值。

2)初始化列表的括号中可以是具体的值,也可以是构造函数的形参名,还可以是表达式。

3)初始化列表与赋值有本质的区别,如果成员是类,使用初始化列表调用的是成员类的拷贝构造函数,而赋值则是先创建成员类的对象(将调用成员类的普通构造函数),然后再赋值。

4)如果成员是类,初始化列表对性能略有提升。

5)如果成员是常量和引用,必须使用初始列表,因为常量和引用只能在定义的时候初始化。

6)如果成员是没有默认构造函数的类,则必须使用初始化列表。

7)拷贝构造函数也可以有初始化列表。

8)类的成员变量可以不出现在初始化列表中。

9)构造函数的形参先于成员变量初始化。

posted @ 2023-02-12 15:19  jinganglang567  阅读(109)  评论(0)    收藏  举报