成员初始化列表:
在类构造函数中,不在函数体内对变量赋值,而在参数列表后,跟一个冒号和初始化列表。
初始化和赋值对内置类型的成员没有什么大的区别,像上面的人一个构造函数都可以。对非内置类型成员变量,为了避免两次构造,推荐使用类构造函数初始化列表。但是有时候必须使用带初始化列表的构造函数。
①:成员类型是没有默认构造函数的类。若没有提供显示初始化,则类创建对象时会调用默认构造函数,如果没有默认构造函数,则必须显示初始化。
②:const成员或者引用类型的成员。因为const对象或者引用类型只能初始化,不能赋值。
为什么成员初始化列表效率更高?
因为对于非内置类型,少了一次调用默认构造函数的过程。