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) 展开
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) 展开
展开全部
#include<iostream>
using namespace std;改成#include<iostream.h>就行了
这是vc6.0的bug
using namespace std;改成#include<iostream.h>就行了
这是vc6.0的bug
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的函数调用写错了
声明与定义中的形参,你仔细看看
声明与定义中的形参,你仔细看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
friend void y(X* x, int i);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询