求教:关于在类中建立静态模板的问题

bbknightzm 2009-05-27 10:54:18
class Math
{
public:
template <class T>
static T sqrt(T n);
};

template <class T>
T Math::sqrt(T n)
{
return n;
}

void main()
{
float tmp = Math::sqrt(1.0f);
}

编译过的,但是出现连接错误:错误
error LNK2019: 无法解析的外部符号 "public: static float __cdecl Math::sqrt<float>(float)" (??$sqrt@M@Math@@SAMM@Z),该符号在函数 _main 中被引用 zmMain.obj zmLib
能不能这样写,有人能解释一下吗?
...全文
81 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sou2012 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 taodm 的回复:]
楼主,先换掉VC6,用VC2005、VC2008试过再来。
珍惜生命,远离VC6
[/Quote]

up
mengde007 2009-05-27
  • 打赏
  • 举报
回复
VS没有问题;
leegongbo 2009-05-27
  • 打赏
  • 举报
回复
g++亦没问题。
taodm 2009-05-27
  • 打赏
  • 举报
回复
楼主,先换掉VC6,用VC2005、VC2008试过再来。
珍惜生命,远离VC6
bbknightzm 2009-05-27
  • 打赏
  • 举报
回复
编译没问题,连接有问题
goodname 2009-05-27
  • 打赏
  • 举报
回复
vs2005编译没有问题,运行良好。
linqingwu75 2009-05-27
  • 打赏
  • 举报
回复
vs6.0有编译问题 vs2008编辑和链接都正常
bbknightzm 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 panjieC 的回复:]
有可能你把那个函数的实现放到.CPP文件里了。
[/Quote]
多谢了,问题解决了,果然如你所说。
panjieC 2009-05-27
  • 打赏
  • 举报
回复
有可能你把那个函数的实现放到.CPP文件里了。

65,211

社区成员

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

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