Deu*_*uro 12
Pavel的答案是对你的问题的直接回答,但我想你可能还不清楚朋友的功能用途是什么,所以我想我会给出一个常见的例子.
友元函数的常见用途是使流操作符过载,其中特定操作符需要访问(或通过访问来促进)对象的私有成员.即:
class Rectangle
{
...
friend ostream &operator<<(ostream &stream, Rectangle r);
private:
int width;
int height;
};
friend ostream &operator<<(ostream &stream, Rectangle r)
{
return (stream << "{" << width << ", " << height << "}");
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,友元函数允许我们访问私有数据进行打印,而无需为数据编写'get'方法.也许这有助于澄清为什么使用友元函数.
Pav*_*aev 10
friend在类中声明或定义的任何函数都不是该类的成员.这只是一个朋友的功能.
也就是说,如果在类中定义了友元函数,则可以通过涉及该类的ADL查找找到它(通常用于重载运算符).