C ++のクラスや友人でフレンド機能

フレンド機能の
フレンド関数は、直接クラスのprivateメンバにアクセスする非メンバ関数です。ちょうど、次の形式でフレンド宣言の友人の名前の前にキーワードを追加し、それがどのクラスにも属さない、通常の関数のクラスの外で定義されていますが、必要性は、クラス定義の中で宣言される:
友人・タイプ関数名(仮パラメータ);
[注意]フレンド関数クラスの宣言のプライベート部分を配置することができるが、違いはありません公共の一部上に配置することができ、友人がクラスのために記載されています。
この関数は、唯一の各クラスの各ステートメントフレンドクラスの複数の関数であってもよいです。
ウェイは、呼び出し、一般的な機能やフレンド関数一貫した原則を呼び出します。
例えば:

class A
{
	...
public:
   friend void B(int c);
   ...
};

フレンドクラス
のすべてのメンバ関数の元クラスの友人のは、あなたが(プライベートメンバーやprotectedメンバーを含む)別のクラスの中に隠された情報にアクセスすることができ、別のクラスのフレンド関数です。
あなたはクラスが別のクラスのprivateメンバにアクセスすることができますしたい場合は、クラスが別のクラスにフレンドクラスとして宣言することができます。次のように友達のクラス定義された文の形式は、次のとおりです。
友達クラスのクラス名を、
[注意](1)友人とクラスがキーワードです、クラス名は、すでにクラスが定義されているプログラムでなければなりません。
(2)友人関係は継承できません。
(3)友人関係は可換で、単方向ではありません。クラスBがクラスAの友人である場合は、クラスAは、クラス内の対応する記載があるかどうかに応じて、必ずしもクラスBの友人ではありません。
(4)友情は推移的ではありません。クラスBがクラスAの友人である場合、クラスBはCの友人であり、対応するクラスも同様に述べ依存している場合、Cは、必ずしも友人クラスAではない
例:

class A
{
...
public:
 friend class B;
 ...
};

役割
プライベートクラスにアクセスすることができます友人の役割はプログラム(型チェックとセキュリティチェックの削減や必要時間のオーバーヘッドそう)の効率を向上させることにあるが、それは非メンバ関数を作り、カプセル化と隠されたクラスを損ないますメンバー。

发布了14 篇原创文章 · 获赞 15 · 访问量 4865

おすすめ

転載: blog.csdn.net/weixin_44480968/article/details/104472715