在他的著作“编程,原理和用C++的做法” Bjarne的Stroustrup的介绍对314-316页(第9.4.4)成员初始化列表概念。他用下面的例子:使用成员初始化列表会使初始化稍微快一点吗?
// Simple Date (year, month, day)
class Date
{
public:
Date(int yy, int mm, int dd): y{yy}, m{mm}, d{dd}
{
//...
}
private:
int y, m, d;
};
在315页,他说:
我们可以这样写:
Date::Date(int yy, int mm, int dd) // constructor { y = yy; m = mm; d = dd; }
但我们会在原则上首先必须默认初始化成员然后为它们分配值。
因此,我可以得出结论:使用成员初始化列表使代码稍微快一点?当然,没有人会注意到现代个人电脑。但是我打算使用C++进行嵌入式开发。
编辑:
我会进一步说明我的问题。实际上,“略快”我的意思是“所涉及的CPU周期较少”。
我也同意了这个特殊的例子潜在效率增长将接近落空。但是对于更大的类和结构,它可能会在微控制器上变得明显。
使用'int's?没有任何区别。尝试一些沉重的课程。 – DeiDei
如果没有副作用,则全部优化。 –
使一个成员为const。现在哪种方式可行?这些决定涉及的性能不止于此。始终使用成员初始化程序列表作为默认值。 – StoryTeller