| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2078 人关注过本帖
标题:为什么友员函数报错不能访问私有成员???
取消只看楼主 加入收藏
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
 问题点数:0 回复次数:4 
为什么友员函数报错不能访问私有成员???

class add
{
public:
add(){}; //构造函数1
add(const char [100]); //构造函数2
void show(); //输出私有字符串变量a
friend add operator + (const add &,const add &); //友员重载+
private:
char a[100]; //
};

//两个构造函数
add::add(const char s[100])
{strcpy(a,s);}

void add::show()
{cout<<'\"'<<a<<'\"';}


//两个友员函数
add operator + (const add &a,const add &b)
{
add temp(a.a);
strcat(temp.a,b.a);
return temp;
}

为什么友员函数报错不能访问私有成员???

VC++6.0中!

搜索更多相关主题的帖子: 函数 成员 访问 
2007-04-21 14:59
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 

你把声明和定义分开试试!


Fight  to win  or  die...
2007-04-21 16:50
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
楼上的用的VC++6.0?

我在VC++6.0上编译时报错

你再改下,都写在一个文件里,只是把友元重载写在类外面。

呵呵

Fight  to win  or  die...
2007-04-21 17:23
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
以下是引用游乐园在2007-4-21 18:57:50的发言:
aipb2007 你的VC++6.0 没有打sp6补丁吧 ...

在类定义的前面 加上几个声明试试

class T;
T operator+(T& ,T& );
ostream& operator<<(ostream&, T&);

我记的我安装的那个VC就是sp6啊!

在哪里有SP6的补丁?大哥给我个撒!


Fight  to win  or  die...
2007-04-21 20:02
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
以下是引用wfpb在2007-4-21 22:30:51的发言:
我这里就是在官方下载的sp6,但是不知道怎么给你们

给个地址就OK了!


Fight  to win  or  die...
2007-04-21 22:53
快速回复:为什么友员函数报错不能访问私有成员???
数据加载中...
 
   



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

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