七、C++复习——构造函数初始化列表
1 必须使用初始化列表
必须用带有初始化列表的构造函数情况:
-
如果成员类型是没有默认构造函数的类。
若类没有默认构造函数,则编译器尝试使用默认构造函数将会失败。比如:A是B类的成员,A存在一个默认有参构造函数,就不会存在默认无参构造函数。如果没有初始化函数列表,就会报错。
- const成员或者引用类型的成员。因为这类型需要创建的时候就需要被初始化。
除了以上必须使用初始化列表的情况,普通成员也可以使用初始化列表进行初始化。
必须用带有初始化列表的构造函数情况:
若类没有默认构造函数,则编译器尝试使用默认构造函数将会失败。比如:A是B类的成员,A存在一个默认有参构造函数,就不会存在默认无参构造函数。如果没有初始化函数列表,就会报错。
除了以上必须使用初始化列表的情况,普通成员也可以使用初始化列表进行初始化。