<>中的一个问题!!!

jp311 2002-08-17 08:09:46
小弟我看<<C++ primer>>,看到了16.4(P682)讲的是类模板的友元声明
2.绑定的友元类模板或函数模板
说一个友元(也是模板实例)如果要和类模板形成一对一的映射就应该如下定义
template<class type>
class testclass {
friend void fun<type>(testclass<type> &a);
...
};

template<class type>
void fun(testclass<type>);

可是书后面接着讲了一个例子,是重载operator<<的,也是声明成了绑定的友元函数模板可是只写成
template<class type>
class testclass {
friend ostream &operator<<(ostream &, const testclss<type> &);
...
}

我觉的不妥,于是在DEV-C++下写了一个测试,果然编不过去,于是改成
friend ostream &operator<<<type>(ostream &, const testclss<type> &);
编译通过,运行正常...

不知道那个定义是正确,望高人指教
...全文
141 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jp311 2002-08-18
  • 打赏
  • 举报
回复
我用的DEV-C++
真不知道应该怎么写好
是先定义TEMPLATE CLASS呀
还是先定义TEMPLATE FUNCTION呀
ywchen2000 2002-08-18
  • 打赏
  • 举报
回复
你用什么编辑器
DarkSpy 2002-08-17
  • 打赏
  • 举报
回复
人无完人,何况书乎?

书是人写滴,人无完人,那么 traits 出来,书无完书。
jp311 2002-08-17
  • 打赏
  • 举报
回复
有没有一本没有错误的书呀:(
elvahuang 2002-08-17
  • 打赏
  • 举报
回复
up
wiler 2002-08-17
  • 打赏
  • 举报
回复
你正确
可能情况一楼也说了
winco 2002-08-17
  • 打赏
  • 举报
回复
up
DarkSpy 2002-08-17
  • 打赏
  • 举报
回复
C++ Primer有一些疏漏,如果该 friend function 在绑定 friend function to template class 的时候,该函数参数含有 template 参数的话,则需要 <> 或者<type>绑定,否则就无所谓。

70,020

社区成员

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

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