| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 494 人关注过本帖
标题:[求助]同时使用模板和友元
只看楼主 加入收藏
chenchao
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-5-20
收藏
 问题点数:0 回复次数:6 
[求助]同时使用模板和友元
若同时使用模板和友元,是不是友元声明和定义不能分开?谢谢指教!
搜索更多相关主题的帖子: 模板 
2006-07-11 15:06
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

应该不是的吧,只要把函数实现部分写在main文件或者头文件中就可以了。


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-11 16:58
chenchao
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-5-20
收藏
得分:0 

我写在头文件里,不能通过编译。

2006-07-11 17:58
chenchao
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-5-20
收藏
得分:0 

友元函数的实现写在头文件里定义的类外不行

2006-07-11 18:02
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

可以的,应该是你的书写有问题,把你的那部分代码帖上来看看


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-11 18:05
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

我给你举个例子吧~!
template<class T>
class MyClass
{
T a;
friend void print(MyClass<T>& mc);
public:
MyClass():a(0){}
};

#include <iostream>
using namespace std;

void main()
{
MyClass mc;
print(mc);
}
template<class T>void print(MyClass<T>& mc)
{
cout<<mc.a<<endl;
}
我还没试,你可以试下,应该是没问题的


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-07-11 19:05
nick_annie
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
收藏
得分:0 
我猜有可能你所指的不能编译的文件是指你的头文件吧?
呵呵..只要编译你的测试文件就OKAY了

还有一种可能就是你在实现友元的时候在函数头前加了friend关键字....

[此贴子已经被作者于2006-7-17 1:06:15编辑过]


2006-07-17 01:04
快速回复:[求助]同时使用模板和友元
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039781 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved