我一直在研究一个小的库集合,在我的n维几何矢量模板类中,我遇到了两个构造函数之间的问题。构造函数VectorN( t data[n] )
与构造函数VectorN( t value )
冲突,并且出现错误:
More than one instance of constructor ___ matches the argument list".
我知道为什么会这样,但是我无法找到解决方案。仅当我尝试使用
VectorN(0)
实例化该类时,才会出现此问题,但是当value
不同于0时,将使用正确的构造函数。我该怎么做才能解决此问题? 最佳答案
您不正确地声明了接受C样式数组的构造函数-您正在丢失大小。如果正确执行此操作:
template <class T>
class VectorN {
public:
template<std::size_t N>
VectorN( T (&array)[N] );
...
};
那么0的问题就会消失。