template的问题

xio 2004-03-20 04:57:34
举例说:
//Plus.h
template <class type>
void Plus(type a1, type a2);

//Plus.cpp
#include "Plus.h"
template <class type>
void Plus(type a1, type a2)
{
cout << "the result is: "<< a1-a2 << endl;
}

//.cpp
void main()
{
int a1=1, a1=3;
Plus(a1, a2);
}
为什么编译不能通过???

如果将函数模板的声明和定义放在同一个文件当中,就没有问题!!!
...全文
45 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeswelkin 2004-03-20
  • 打赏
  • 举报
回复
模板类函数的实现:
1.实现和声明都放在头文件中
2.实现跟main函数放在同个cpp文件中
3.实现放在某个cpp文件,main函数中include"*.cpp"
whz_time 2004-03-20
  • 打赏
  • 举报
回复
在cpp 文件中加上这一句(随便哪一行都行):
class template <int>;
Wolf0403 2004-03-20
  • 打赏
  • 举报
回复
都一样。基本目前编译器都不支持模板分离编译。
xio 2004-03-20
  • 打赏
  • 举报
回复
那是否只有“dddd8888”所说的解决办法呢?

模板类的情况又如何呢?
召棠 2004-03-20
  • 打赏
  • 举报
回复
我觉得和内联没有什么关系吧,应该就是编译器的问题。
sharkhuang 2004-03-20
  • 打赏
  • 举报
回复
内联可以解决吗?
dddd8888 2004-03-20
  • 打赏
  • 举报
回复
把它写在同一个文件中就能解决
Mephisto_76 2004-03-20
  • 打赏
  • 举报
回复
则是VC的老问题,因为VC的连接器不支持分开写。你可以看文档。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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