2013-03-18 38 views
1

我發現在源代碼中的下列工程建設:「type name {}」在C++中的含義是什麼?

variable_type variable_name{func(arg1, arg2, arg3)}; 

在代碼的下一版本中這種結構已經被替換爲以下之一:

variable_type variable_name = func(arg1, arg2, arg3); 

所以,我的問題是什麼第一行的意思,它與第二行有什麼不同?我也想知道爲什麼使用第一行而不是第二行可能會更好或更差?

+0

在這種情況下,它是相同的。見[這裏](http://www.gotw.ca/gotw/036.htm) – juanchopanza 2013-03-18 09:24:11

+1

@Mat我認爲這不是正確的重複,因爲它處理與initializer_list構造函數的類。 – juanchopanza 2013-03-18 09:25:41

+0

具體內容取決於'variable_type'的構造函數和'func'的返回類型。 – juanchopanza 2013-03-18 09:28:02

回答

1

第一行是從C++ 11一個新的功能被稱爲uniform initialization。這種初始化類型也可用於定義構造函數的類,該構造函數採用std::initializer_list,在這種情況下,此類構造函數具有優先級。

相關問題