【发布时间】:2012-01-17 18:04:35
【问题描述】:
我正在尝试使用模板创建一个 Vector 类来存储对象的 3D 位置。我已经创建了这个类,但是我一直收到错误 LNK2019: unresolved external symbol "public: __thiscall Vector3::~Vector3(void)" (??1?$Vector3@H@@QAE@XZ) 在函数 _main 中引用
这与我在 main 函数中创建 Vector 有关,但我无法弄清楚它有什么问题......这是我的代码:
//Vector3.h
template <typename T>
class Vector3
{
public:
Vector3(T elemOne, T elemTwo, T elemThree);
~Vector3();
void display();
protected:
T x;
T y;
T z;
};
//Vector3.cpp Constructor.
#include"Vector3.h"
template<typename T>
Vector3<T>::Vector3(T elemOne, T elemTwo, T elemThree)
{
x = elemOne;
y = elemTwo;
z = elemThree;
}
template<typename T>
Vector3<T>::~Vector3()
{
}
template<typename T>
void Vector3<T>::display()
{
cout << "X: " << x << endl;
cout << "Y: " << y << endl;
cout << "Z: " << z << endl;
}
//MainFrame.cpp
int main()
{
Vector3<int> vec(10, 20, 30);
cout << "Press any key to continue..." << endl;
return 0;
}
任何有关找出此问题的帮助将不胜感激。谢谢
【问题讨论】:
-
你能发布
Vector3的完整定义吗? -
您需要显示更多代码。您显示的代码似乎没有问题。
-
你的模板代码和主文件在同一个(包含的)文件中,还是在单独的文件中?
-
按要求发布了我项目中的所有代码。对此感到抱歉
-
@vyktor 我有一个名为 MainFrame 的单独文件,它只包含主要功能