LNK 2019 C ++错误

时间:2013-03-03 22:02:52

标签: c++

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

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

1 个答案:

答案 0 :(得分:1)

您的模板类必须是implemented in the header file。我认为这就是问题的原因。这是我能从您提供的代码中得出的唯一结论。