使用了 template 之后出现链接错误的问题

边城狂人 2005-08-24 06:07:34
我有三个文件,内容分别如下:

// @(#) TestTemplate.h

template < class T >
class TestTemplate
{
public:
TestTemplate(void);
};


// @(#) TestTemplate.cpp
#include "testtemplate.h"

template < class T >
TestTemplate< T >::TestTemplate(void)
{
}


// @(#) Main.cpp
#include "TestTemplate.h"

void main() {
TestTemplate< int > a;
}


链接的时候出现如下错误:
VCTest error LNK2019: 无法解析的外部符号 "public: __thiscall TestTemplate<int>::TestTemplate<int>(void)" (??0?$TestTemplate@H@@QAE@XZ) ,该符号在函数 _main 中被引用


请问是怎么回事,应该如何解决!
...全文
185 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxk_cool 2005-08-24
  • 打赏
  • 举报
回复
模板声明和实现必须要在一起...
Jagen在路上 2005-08-24
  • 打赏
  • 举报
回复
没有办法,楼主只能忍受,要不然微软怎么会不提供官方支持的WTL呢?
foochow 2005-08-24
  • 打赏
  • 举报
回复
又是这个问题..
没有那个编译器支持分离编译吧.....
fengfeng2003 2005-08-24
  • 打赏
  • 举报
回复
是的,模板声明和实现必须要在一起
积木 2005-08-24
  • 打赏
  • 举报
回复
这可能是C++STL开源的原因,哈。
qhfu 2005-08-24
  • 打赏
  • 举报
回复
呵呵! 我并没有用模版开发过软件的经验。。  不过c++中是有一个export关键字支持分离编译的,只是目前没有支持的编译器。
边城狂人 2005-08-24
  • 打赏
  • 举报
回复
多谢。
不过这样的话,我的模板中的代码岂不是都给用户看到了 (写的 API)?
郁闷。
qhfu 2005-08-24
  • 打赏
  • 举报
回复
现在的编译器不支持模版分离编译。。 


// @(#) TestTemplate.cpp
#include "testtemplate.h"

template < class T >
TestTemplate< T >::TestTemplate(void)
{
}
放到
"testtemplate.h"中
边城狂人 2005-08-24
  • 打赏
  • 举报
回复
忘了说一下,我的环境是
Windows XP Sp2
Visual Studio .NET 2003

项目是 Win32控制台程序

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧