0

我有一个在 NewTree.h 中定义的 NewTree 类。当我在 main 方法中创建 NewTree 的新实例时,它会引发 LNK 2019 错误。

新树.h:

template <class T>
class NewTree
{
public:

treeNode<T> *current;
treeNode<T> *root;

NewTree();
~NewTree();
bool insert(T *data, treeNode<T> *parent);
treeNode<T> search(T *target);
};

创建 NewTree 的新实例的行:

NewTree<xml_node<>> *tree = new NewTree<xml_node<>>();

为什么 Visual Studio 给我一个 LNK 错误?

完全错误:

main.obj : error LNK2019: unresolved external symbol "public: __thiscall NewTree<class rapidxml::xml_node<char> >::NewTree<class rapidxml::xml_node<char> >(void)" (??0?$NewTree@V?$xml_node@D@rapidxml@@@@QAE@XZ) referenced in function _main
4

1 回答 1

1

您的模板类必须在头文件中实现。我认为这是问题的原因。这是我可以从您提供的代码中得出的唯一结论。

于 2013-03-03T22:06:48.447 回答