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? –