朋友声明的放置

Qix*_*Qix 7 c++ class protected friend private-members

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

Luc*_*ore 10

不,不是的.

class X
{
public:
    friend class A;
private:
    friend class B;
protected:
    friend class C;
};
Run Code Online (Sandbox Code Playgroud)

这三个班级现在都是朋友,X并分享完全相同的特权.

一个好的约定是将所有朋友声明组合在一起以获得可见性,但这只是风格.

11.4朋友

9)朋友声明提名的名称应在包含朋友声明的类的范围内访问.朋友声明的含义是相同的朋友声明是否出现在private,protected或public类成员规格的(9.2)部分.

  • @mark:我把它放在`private`部分,但是在类的顶部(在`{`之后)作为提醒所有读者,有些人可能绕过以后列出的公共接口. (2认同)