【问题标题】:Placement of friend declarations放置友元声明
【发布时间】:2012-09-19 05:03:59
【问题描述】:

friend 子句在类中的哪个位置是否重要(即在 protected 块内而不是 private 块内)?

【问题讨论】:

    标签: c++ class friend protected private-members


    【解决方案1】:

    不,它没有。

    class X
    {
    public:
        friend class A;
    private:
        friend class B;
    protected:
        friend class C;
    };
    

    所有三个班级现在都是X 的朋友,并享有完全相同的特权。

    一个好的约定是将所有朋友声明组合在一起以提高可见性,但这只是样式。

    11.4 朋友

    9) 朋友声明指定的名称应可在 包含朋友声明的类的范围。的含义 无论朋友声明,朋友声明都一样 出现在类的privateprotectedpublic (9.2) 部分 成员规范。

    【讨论】:

    • 我将添加一个我的约定,将其放在私有块中,以在查看“谁可以触摸此部分”时提醒它
    • @mark:我把它放在private 部分,但在类的顶部(紧跟在{ 之后),以提醒所有读者,以后有些人可能会绕过公共接口列出。
    • 我把它放在public 部分,因为这通常是其他开发人员阅读的唯一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多