不,不是的。
class X
{
public:
friend class A;
private:
friend class B;
protected:
friend class C;
};
这三个班级现在都是朋友X
并享有完全相同的特权。
一个好的约定是将所有朋友声明组合在一起以提高可见性,但这只是风格。
11.4 朋友
9) 由友元声明指定的名称应可在包含友元声明的类范围内访问。private
无论朋友声明出现在类成员规范的,protected
或public
(9.2) 部分中,朋友声明的含义都是相同的。