C ++中朋友函数/类的真正用途是什么?你能举一个例子,只有friend
是正确的方法吗?
由于
答案 0 :(得分:8)
“在C ++中,只有您的朋友可以访问您的私人部分。”
朋友的观点是,您可以将软件打包成较小的分组,例如朋友类等,同时仍允许访问类的内部。这可以让你在没有友情的情况下保持对封装的更好控制。
答案 1 :(得分: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;
}
但主要是它能够访问两个不同类的私人数据。
答案 2 :(得分:-2)
在C ++中使用friend
实际上是非常沮丧的(它有点打破了整个封装的想法),但我想到了一个只有朋友才是正确方法的例子:
friend ostream & operator<< (ostream & out, const MyClass & C);
friend istream & operator>> (istream & in, MyClass & C);