2

在受保护的部分而不是在公共场合宣布友谊有什么意义吗?例如在这段代码中:

class Shape {
//...
protected:
     friend ostream& operator<<(ostream& os, const Shape& s);
     virtual void print(ostream& os) const = 0;
};

[注意 Shape 是抽象的]

我可以把朋友和函数声明公开吗?谢谢!

4

1 回答 1

2

在受保护的部分而不是在公共场合宣布友谊有什么意义吗?

不。无论朋友声明出现在类定义的公共、受保护或私有部分中,朋友类都具有相同的访问级别。 关联

我可以把朋友和函数声明公开吗?

因此,是的,在您的班级的私有、公共或受保护部分中是否找到声明并不重要。

于 2013-07-28T10:12:45.720 回答