c++关于友元函数访问私有数据的总是错误

#include<iostream>usingnamespacestd;classX{private:inti;public:voidout();friendvoidy(... #include<iostream>
using namespace std;

class X
{
private:
int i;
public:
void out();
friend void y(int i);
};

void y(X*x,int i)
{
x->i=i;
}
void X::out()
{
cout<<i<<endl;
}

int main()
{
X x;
y(&x,50);
x.out();
return 0;
}
--------------------Configuration: list - Win32 Debug--------------------
Compiling...
list.cpp
d:\c++ files\list.cpp(15) : error C2248: 'i' : cannot access private member declared in class 'X'
d:\c++ files\list.cpp(7) : see declaration of 'i'
执行 cl.exe 时出错.

list.obj - 1 error(s), 0 warning(s)
展开
 我来答
woshinia777
2010-09-18 · TA获得超过915个赞
知道小有建树答主
回答量:495
采纳率:0%
帮助的人:351万
展开全部
#include<iostream>
using namespace std;改成#include<iostream.h>就行了
这是vc6.0的bug
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
煜赤砂之蝎
2010-09-18
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
你的函数调用写错了
声明与定义中的形参,你仔细看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hejianliangjia
2010-09-18 · 超过15用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:36.3万
展开全部
friend void y(X* x, int i);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式