注册 登录
编程论坛 C++教室

请问同一个函数的友元函数之间可以相互访问吗

nothingness 发布于 2013-06-17 20:28, 698 次点击
请问同一个函数的不同友元函数是被当成该函数的一部分了吗,他们之间能像原函数和友元函数那样相互访问吗
8 回复
#2
lzj125302013-06-17 21:34
如果不是公有函数是不能互相访问的
#3
rjsp2013-06-18 08:21
听不懂,函数不可能有友元函数,你还是用代码来示例吧
#4
peach54602013-06-18 10:00
听不懂你想表达什么...
#5
lzj125302013-06-18 23:35
在类定义的时候可以声明友元类或者单独声明友元函数
#6
nothingness2013-06-19 11:29
struct X;

struct  Y{
viod f(X*);
}

struct X{
private:
 int i;
public:
 void initialize();
friend void g(X*,int);
friend void Y::f(X*);
friend struct Z;
friend void h();
}

...........
#7
nothingness2013-06-19 12:19
回复 2楼 lzj12530
代码如6楼所示,g(X*,int);  Y::f(X*);  Z;  h()分别能访问X中的i。
那请问g;  Y;  Z;  h  之间能相互访问吗,他们能访问Y; Z中的私有属性的内容吗
#8
lzj125302013-06-19 12:37
如果是友元类或者友元函数 可以访问Y和Z的私有属性。
在声明中如果只有单方面的声明那么就只能单向的访问,而不是互相访问
#9
nothingness2013-06-19 16:00
回复 8楼 lzj12530
那么g(X*,int);  Y::f(X*);  Z;  h()四个函数(或结构),只声明他们是X的友元,那么他们之间是不能互相访问彼此的私有属性的部分是吗
1