我收到此错误:
Error 1 error LNK2019: unresolved external symbol "public: __thiscall emath::VecN<float,3>::~VecN<float,3>(void)" (??1?$VecN@M$02@emath@@QAE@XZ) referenced in function _main C:\Users\RobertBerglund\documents\visual studio 2013\Projects\testEnv\testEnv\Source.obj testEnv
我不知道为什么,我在标题 emath.h 中声明了类析构函数:
template <typename T, const int n>
class VecN
{
public:
...
//destructor
~VecN();
...
};
然后我在 emath.cpp :
中定义了它template <typename T, const int n>
VecN<T, n>::~VecN()
{
delete _data;
}
也许值得一提的是标题中的声明介于:
之间namespace emath
{
...
}
在cpp文件中的类定义之前,我有:
using namespace emath;
同样_data
是类型为T
在类声明之后,我定义了要在我的代码中使用的folowing类型:
typedef VecN<float, 3> vec3;
在main()中我有:
...
vec3 vec(4.0f);
...
cout << "vector test:";
for (int i = 0; i < 3; i++)
cout << vec[0] << vec[1] << vec[2] << endl;
...
如果我需要发布我的代码的更多部分,请告诉我,提前感谢!