首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小弟我又来现眼了,友元函数有关问题

2012-05-10 
我又来现眼了,友元函数问题C/C++ codeclass A{friend void B::fun1(A)int x}class B:public A{public:v

我又来现眼了,友元函数问题

C/C++ code
class A{    friend void B::fun1(A);        int x;};class B:public A{public:    void fun1(A a)    {        a.x=6;    }};

该处为什么a.x禁止访问呢?
先谢过!~!~o(︶︿︶)o

[解决办法]
探讨

确实是这个问题,
前置声明一下class A就可以了.
只是总结不出他有什么规则;
下次再进入这个陷阱咋办啊.

引用:

我看是先有鸡还是先有蛋的问题。定义类A时还没有看到B呢,就要定义B类的函数为它的友元?反之也是个问题。
你如果能解决这个信赖,那么就好办了。

[解决办法]
探讨

引用:

这里直接声明派生类为友元,不存在你说的继承问题吧??
引用:

友元函数没有传递性,即基类的友元函数未必是派生类的有缘函数,就像你父亲的朋友,未必是你的朋友一样。
参考:
友元函数和友元类


1. 是我没有仔细看,sorry
2. 楼主那样将派生类的成员函数设为友元函数是不对的,一般情况下,友元函数都不是成员函数,更何况是派生……

热点排行