错误LNK2019:未解析的外部符号" public:__ thishisall析构函数

时间:2015-08-30 21:18:39

标签: c++ templates lnk2019

我收到此错误:

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;
...

如果我需要发布我的代码的更多部分,请告诉我,提前感谢!

0 个答案:

没有答案