在他的著作「編程,原理和用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