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

嵌套友元有关问题求解

2012-04-24 
嵌套友元问题求解。位置:thing in c++,第三章 3.3.1嵌套友元文中说:一个嵌套的struct并不能自动的获得存

嵌套友元问题求解。
位置:<thing in c++>,第三章 3.3.1嵌套友元
文中说:一个嵌套的struct并不能自动的获得存取私有的权限。

<c++ primer>18.4 嵌套类
文中说:外围类对嵌套类的成员没有特殊的访问权限,并且嵌套类对外围类也没有特殊访问权限。

也就是说:外围类对不能访问嵌套类的private,嵌套类也一样。

C/C++ code
class Obj_A{public:    Obj_A()    {        a = 10;    }    class Obj_B    {        friend class Obj_A;     //外围类要想访问嵌套类private成员必须声明为friend    public:        Obj_B()        {            a = 20;        }        void f(Obj_A a)        {            a.a = 1;      //嵌套类可以随意访问外围类的private成员        }    private:        int a;    };    void f(Obj_B b)    {        b.a = 1;    }private:    int a;}; 

但嵌套类可以随意访问外围类的private成员啊,而且不用声明为友元。
是我理解错了,还是书上写的有问题?

换成struct一样的。


[解决办法]
看这个帖子里我在 4# 的回答.
http://topic.csdn.net/u/20120409/11/85d22e1b-d8ff-416c-ba91-ee80f80bdf3b.html

热点排行