Ale*_*Ale 5 c++ parameters templates list
代码中的某处有错误,但我不知道如何解决.它说"模板参数列表太少".我不明白哪个是错误.
这是代码:
#if !defined(VECTOR_H_INCLUDED)
#define VECTOR_H_INCLUDED
#include <cstdlib> // for size_t
namespace Vec
{
class Vector_base
{
public:
explicit Vector_base() {}
};
template<typename T, int DIM>
class Vector : public Vector_base
{
typedef Vector<T,DIM> ME;
explicit Vector(T,T,T);
double dot(const ME &v) const;
T &operator [](size_t n)
{
return v[n];
}
T operator [](size_t n) const
{
return v[n];
}
private:
T v[DIM];
};
typedef Vector<double,3> Vector3;
double Vector3::dot(const ME &o) const // ----- it gives me the error here ...
{
return v[0] * o[0] + v[1] * o[1] + v[2] * o[2];
}
Vector3::Vector(double x, double y, double z) // ----- ... and here
{
v[0] = x;
v[1] = y;
v[2] = z;
}
}
#endif // VECTOR_H_INCLUDED
Run Code Online (Sandbox Code Playgroud)
我需要改变什么?
提前致谢.抱歉我的英语,我在学校学习英语作为第二语言.
您应该template<>在这里使用模板专业化.
template<> double Vector3::dot(const ME &o) const
Run Code Online (Sandbox Code Playgroud)
和
template<> Vector3::Vector(double x, double y, double z)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5214 次 |
| 最近记录: |