cpp中友元的传递性

2017-06-10  本文已影响0人  沧海梦帆

c++中的友元不具有传递性

class Base
{
    friend class F;//1
protected:
    int a;
};
class Extend : public Base
{
    friend class F;//2
protected:
    int b;
};
class F
{
    Base b;
    Extend e;
    void f()
    {
        b.a;//1.处不声明此处是错误的
        e.b;//2.处不声明此处是错误的
        e.a;//2.处不声明此处是错误的
    }
};
class ni
{
//不能访问ta的成员
};
class wo
{
    friend class ni;
};
class ta
{
    friend class wo;
};
上一篇 下一篇

猜你喜欢

热点阅读