cpp中友元的传递性

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;
};
  • 要想是两个类互为友元必须在两个类中都要声明对方。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,264评论 19 139
  • 不支持上传文件,所以就复制过来了。作者信息什么的都没删。对前端基本属于一窍不通,所以没有任何修改,反正用着没问题就...
    全栈在路上阅读 6,062评论 0 2
  • 现代的时间观让我们陷入了“时间贫瘠”中。 “活在当下”要求我们一段时间内只专注于一件事,放慢节奏,并且去体会自己的...
    青青狐阅读 3,233评论 0 0
  • 今天上完了最后一节课,也算是进入节假日,整个人放松些许。 舍友们都回家了,忽而觉得天气虽好,周边空无一人的时候还是...
    三疯_zz阅读 2,778评论 3 3

友情链接更多精彩内容