「我們可以initializate爲此我們沒有使用定義 任何構造函數的類的對象。拷貝構造函數的花括號初始化
- 按成員初始化
- 拷貝初始化
- 默認初始化。
例如:
struct Work { string author; string name; int year; }; Work s9 { "Bethoven", "Symphony No. 9 in D minor, Op. 125; Choral", 1824 }; // memberwise initialization Work currently_playing {s9}; // copy initialization Work none {}; // default initialization
The C++ Programming Language 4th Ed。章17.3.1
例如:
struct Data
{
int mMember1;
float mMember2;
char mMember3;
};
int main()
{
Data aData_1{1,0.3,33};
Data aData_2{aData_1};
return EXIT_SUCCESS;
}
這必須工作,althought我得到一個編譯錯誤儘可能多的與海灣合作委員會與鏘。這兩個編譯器中的錯誤是「無法將數據轉換爲整數」。但是,實現複製構造函數這個錯誤消失或不實現它,但使用圓括號語法。問題是有點愚蠢,改變圓括號的問題得到解決。但爲什麼不遵循TC++ PL的規則?是一個彙編問題還是我誤解了某些東西?提前致謝。
這是由一個DR修復到C++ 14,[請參閱此處](http://stackoverflow.com/questions/31776359/explicit-copy-constructor-and-uniform-initialization/31776937) –