既然初始化方式这么多,那么什么时候适用哪种呢?
1.声明时初始化的使用场景
一个优点是直观,你在声明的时候顺便给一个初始值,bravo,当别人看到你的代码时,点一下调到声明中就可以看到你赋予的初始值,而不必去查看构造函数给出的值。
另外一个好处,比如你要定义多个构造函数,每个构造函数都用列表初始化的方法初始化,多麻烦呀,请看下面的例子,妈妈看了再也不用担心我想用其他初始化方法了。
2.列表初始化的使用场景
这里列举关于列表初始化的三个场景:
const成员变量的初始化只能通过成员初始化列表来完成,而不能在构造函数内赋值。
初始化的数据成员是对象
需要初始化引用成员数据
要注意列表的初始化顺序,不过IDE将提示您。
3.构造函数初始化的使用场景
首先是拷贝和赋值构造函数里(否则怎么称之为赋值构造函数呢)
第二个就是比较无聊的情况了,比如你想把几个成员函数都初始化成一个值,请看下面例子。
简单地说,就地初始化和列表初始化。