class Complex{
public:
Complex(int a, int b): real(a), imag(b){}
~Complex(){}
private:
int real;
int imag;
};
int main()
{
vector<Complex> vec1 {1,2,3,4}; //Why can't be recognize in C++11
vector<Complex> vec2 {{1,2},{4,6}};
}
看看上面的代碼的initializer_list,我定義一個類複雜的,它需要在構造函數中2 PARAM。然後我定義了2個矢量,爲什麼vec1不能被識別,編譯器不能把它當作vec1 {{1,2},{3,4}}?如何編譯治療載體<Type>這<Type>具有多PARAMATERS
簡短的答案是因爲C++不能這樣工作。 –
即使在人類中混淆的可能性也很大。對於不經意的讀者,應該是(1,0),(2,0),(3,0),(4,0)? (1,2),(3,4)?第二個強迫你寫出你的意思,這是值得的黃金重量。 – user4581301
但實際上,Complex構造函數需要2個參數,我告訴向量的類型是,爲什麼編譯器不能將{1,2}分配給Complex1,{3,4}到vec1中的Complex2? –