C ++でのフレンド関数/クラスの実際の使用法は何ですか? friend
正しいアプローチだけが正しい例を挙げていただけますか?
ありがとう
C ++でのフレンド関数/クラスの実際の使用法は何ですか? friend
正しいアプローチだけが正しい例を挙げていただけますか?
ありがとう
「C++では、友達だけがあなたのプライベートパーツにアクセスできます。」
友人のポイントは、クラスの内部へのアクセスを許可しながら、ソフトウェアを友人クラスなどの小さなグループにパッケージ化できることです。これにより、友だちがいない場合よりも、カプセル化をより細かく制御できるようになります。
多くの場合、フレンド関数の使用は読みやすさの問題だと思います。たとえば、次のオーバーロードされた演算子は対称的に見え、これはコード リーダーに適している場合があります。
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 つの異なるクラスのプライベート データにアクセスできることです。
Usingfriend
は実際には C++ では非常に推奨されていません (カプセル化のアイデア全体をちょっと壊してしまいます) が、友人だけが正しいアプローチである例が思い浮かびます:
friend ostream & operator<< (ostream & out, const MyClass & C);
friend istream & operator>> (istream & in, MyClass & C);