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;
}

しかし、要点は、2 つの異なるクラスのプライベート データにアクセスできることです。

于 2011-12-23T08:15:13.433 に答える
-2

Usingfriendは実際には C++ では非常に推奨されていません (カプセル化のアイデア全体をちょっと壊してしまいます) が、友人だけが正しいアプローチである例が思い浮かびます:

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