美文网首页
cpp中友元的传递性

cpp中友元的传递性

作者: 沧海梦帆 | 来源:发表于2017-06-10 19:50 被阅读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;
    };
    
    • 要想是两个类互为友元必须在两个类中都要声明对方。

    相关文章

      网友评论

          本文标题:cpp中友元的传递性

          本文链接:https://www.haomeiwen.com/subject/bthfqxtx.html