我有一个泛型类,我也有一个结构。像这样:
template <class T> class Octree
{
public:
struct node
{
typename T value;
node *child[8];
};
Octree();
template <class T> Octree();
~Octree();
void clear(T t);
node* root;
};
.cpp文件:
template <class T>
Octree<T>::Octree()
{
root = new node;
root->value = 0;
for (int i = 0; i < 8; i++)
root->child[i] = 0;
}
template <class T>
Octree<T>::~Octree()
{
clear(root);
}
和主要:
using namespace std;
int main() {
Octree <int> fasz;
Octree <char> fasz2;
return 0;
}
我刚刚创建了一个树的对象,我收到了这个错误:
错误LNK2019未解析的外部符号“public:__thiscall Octree :: Octree(void)”(?? 0?$ Octree @ H @@ QAE @ XZ)在函数_main Zz c:\ Users .... Source中引用。 OBJ
我试图在头文件中编写模板声明,然后在实现文件中实现该类(例如.cpp),并在头的末尾包含此实现文件,但后来我遇到了错误:
错误C2995'Octree :: Octree(void)':函数模板已经定义
我看过这个链接问题,但这不是我需要的。
你知道问题是什么吗?