std::valarray< double > myArray(3)
产生valarray
长度为 3 的 a,初始化为零。
std::valarray< double > myArray(1,3)
产生valarray
长度为 3 的 a,初始化为 1。
std::valarray< double > myArray(0,3)
产生error: call to constructor of 'std::valarray<double>' is ambiguous
.
我当然可以使用myArray(3)
并添加一条注释,确认它已初始化为零,但根据我自己的理解,我希望有人能解释为什么这是模棱两可的——它是否以我错过的方式与另一个构造函数冲突?