使用初始化列表的优点?

jma*_*erx 8 c++

可能重复:
初始化列表的好处

我想知道使用初始化程序列表初始化成员是否有利于将它们放在构造函数中.某些东西必须使用初始化列表,但对于大多数没有的东西,是否有区别?我更喜欢后者,因为当我有多个构造函数时,我更喜欢简单地调用construct()来促进代码重用.

谢谢

Lou*_*nco 12

如果不使用初始化列表,则成员或基类在开始大括号之前获取默认构造.

因此,您稍后设置它的operator=()电话会添加一个电话.

如果使用初始化列表,则成员或基类具有适当的构造函数.

根据您的课程,这可能是必需的或更快.


wkl*_*wkl 10

对于原语,使用初始化列表或通过赋值构建它们没有区别.

对于其他类型,初始化列表可以在构造对象时为您提供性能改进.

请注意,初始化的顺序(在初始化列表中)取决于类中声明的顺序.如果声明乱序并且您需要构建依赖于其他事先已经初始化的数据的数据,那么这是"在可能的规则下使用初始化列表"的例外.

更多信息:http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.6