未解决的外部符号错误相关类与模板 [duplicate]

Unresolved external symbol error related class with template [duplicate]

提问人:Opal Koren 提问时间:9/11/2018 最后编辑:melpomeneOpal Koren 更新时间:9/11/2018 访问量:92

问:

我制作了以下代码:

项目.h:

#include <iostream>
using namespace std;

template <class T>
class Item
{
private:
    Item<T> * next;
    Item<T> * prev;
    T * data;

public:
    Item(T * pData = NULL);
    ~Item();
};

我还制作了 Item.cpp:

#include "Item.h"

template<class T>
Item<T>::Item(T * pData) : data(pData), next(NULL), prev(NULL) {}

template<class T>
Item<T>::~Item() {}

这是主要的:

#include "Item.h"

int main()
{
    int * s1 = new int(5);
    Item<int> * i = new Item<int>(s1);

    system("pause");
    return 0;
}

当我尝试将 Item.h 与 Item.cpp 分开时(如果我不写声明),我收到此错误:

Error LNK2019 unresolved external symbol "public: __thiscall Item<int>::Item<int>(int *)" (??0?$Item@H@@QAE@PAH@Z) referenced in function _main.

C++ 模板 未解析 - 外部

评论

0赞 Krzysztof Lewko 9/11/2018
你的问题是什么?
0赞 Eljay 9/11/2018
模板需要实例化。您没有实例化 Item.cpp 源文件中的模板代码。Item<int>

答: 暂无答案