1

C++ 中友元函数/类的真正用途是什么?你能举一个例子,只有friend正确的方法吗?

谢谢

4

3 回答 3

8

“在 C++ 中,只有你的朋友才能访问你的私密部分。”

朋友的重点是您可以将您的软件打包成更小的分组,如朋友类等,同时仍然允许访问类的内部。可以说,与没有交友相比,这可以让您更好地控制封装。

于 2011-12-23T05:13:22.717 回答
0

我认为经常使用朋友功能是一个可读性问题。例如,下一个重载运算符看起来是对称的,这可能对代码阅读器有好处。

friend const X operator+(const X&, const X&);

inline const X operator+(const X& arg1, const X& arg2)
{
    X r;
    r.x = arg1.x + arg2.x;
    return r;
}

但主要的一点是他们能够访问两个不同类别的私有数据。

于 2011-12-23T08:15:13.433 回答
-2

在 C++ 中使用friend实际上是非常不鼓励的(它有点打破了整个封装的想法),但我想到了一个只有朋友才是正确方法的例子:

friend ostream & operator<< (ostream & out, const MyClass & C);
friend istream & operator>> (istream & in, MyClass & C);
于 2011-12-23T05:27:09.923 回答