初始化列表介绍
顾名思义,初始化列表,即对变量进行初始化操作的一个列表,常见于类的构造函数中,如vector类的一个构造函数初始化列表如下:
如图我们知道,初始化列表在函数名和大括号之间,以:开始,以,间隔
初始化列表的作用
首先我们要理解,一个变量在创建出来的过程有两步,第一步是初始化,第二步是赋值。
当我们在构造函数大括号内对于变量进行的操作实际上是赋值操作,跳过了初始化操作,也可以说是没有进行初始化操作。
说到这里,大家就能理解初始化列表的作用,给那些只能初始化不能赋值的变量一个值
适用初始化列表的成员
const成员变量
学过c语言的人都知道,const赋予了变量常属性,使得变量初始化后不能再进行赋值操作,因此,对于这类变量我们必须使用初始化列表进行赋值,如果没有在初始化列表进行赋值,无法对其进行赋值操作。
引用变量&
C++对于引用变量的使用是有着规定的,即初始化指定引用对象后,引用对象不可以进行变更,因此,对引用变量来说,它与const相同,只能使用初始化列表进行赋值。
不存在默认构造函数的类对象
相信大家在学习C++类与对象的过程中,也经常看到这个字眼——默认构造函数。
那么,究竟什么是默认构造函数呢。
说简单一点,默认构造函数就是不需要传入参数就能够进行构造的函数,这样的话,默认构造函数就有两种情况:
1.无参数的构造函数
2.所有参数都存在缺省值的构造函数
需要注意的是,编译器生成的类构造是无参数的构造函数。
没有默认构造函数的类对象,必须传入一定数量的值才能够进行构造,因此我们只能在初始化列表中进行自定义传值进行初始化。
初始化列表初始化顺序
需要注意的是,初始化列表的参数顺序并不是从上到下的,而是根据类中成员变量的顺序进行初始化,如果在类中成员变量是 1 2 3 的顺序,即使在参数列表中是 3 2 1 的排列顺序,也会进行 1 2 3 的顺序进行初始化。
以上就是我对于初始化列表使用的一些看法,感谢观看。