自定义一个模板类, 声明和定义不能分别放到.h和.cpp文件中吗?

kwiner CSDN会员 kwiner 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
看我下面的代码:

//queue.h

template <class Type>
class TQueue
{
public:
TQueue(){}
~TQueue(){}
void add(const Type& queueItem);
...
};


//queue.cpp

#include "queue.h"

template <class T>
void TQueue<T>::add(const T& queueItem)
{
...
}



//main.cpp

#include "queue.h"

int main(int argc, char* argv[])
{
TQueue<int>* p = new TQueue<int>();
p->add( 2 );
delete p;

return 0;
}




感觉很正常的使用啊, 但编译时却出现如下错误:

Linking...
q.obj : error LNK2001: unresolved external symbol "public: void __thiscall TQueue<int>::add(int const &)" (?add@?$TQueue@H@@QAEXABH@Z)
Debug/q.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

q.exe - 2 error(s), 0 warning(s)
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
kwiner CSDN会员
VC/MFC 16,550 成员 421,606 内容