gpt4 book ai didi

C++ 3D vector 模板

转载 作者:太空狗 更新时间:2023-10-29 23:46:48 27 4
gpt4 key购买 nike

我正在尝试使用模板创建一个 Vector 类来存储对象的 3D 位置。我已经创建了类,但我不断收到错误 LNK2019:未解析的外部符号“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;
}

如果您能帮助找出这个问题,我们将不胜感激。谢谢

最佳答案

模板需要在使用它们的同一个编译单元中定义。您不能将模板的实现放在代码中显示的不同文件中。

我还要指出,就目前而言,您不需要析构函数。您没有在其中执行任何操作并且它不是虚拟的,因此可以省略它以允许编译器为您生成一个。

关于C++ 3D vector 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8899455/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com