C では、フレンド クラスを使用すると、あるクラスのすべてのメンバー関数が別のクラスのプライベート メンバーにアクセスできます。フレンド クラスを宣言するときは、フレンド クラス キーワードを使用します。たとえば、OuterClass は内部クラスをフレンド クラスとして宣言します。フレンド クラス内部クラス; 内部クラスのメンバー関数のみが、OuterClass のプライベート メンバーにアクセスできます。
C フレンド関数の詳細説明: フレンドクラスの宣言方法
まえがき
C では、フレンド関係は、非メンバー関数がクラスのプライベート メンバーにアクセスできるようにする強力なメカニズムです。フレンド クラスは、あるクラスのすべてのメンバー関数が別のクラスのプライベート メンバーにアクセスできるようにする特別な形式のフレンド関係です。
フレンド クラスの宣言
フレンド クラスを宣言するには、クラスの定義で friend
キーワードを使用する必要があります。構文は次のとおりです。
class OuterClass { // 成员变量和函数 friend class InnerClass; };
これにより、InnerClass
のすべてのメンバー関数が OuterClass
のプライベート メンバーにアクセスできるようになりますが、他のクラスにはアクセスできません。
実際的なケース
実際的な例を考えてみましょう。OuterClass
は機密データを含むクラスを表し、inner クラス ## を表します。 # このデータにアクセスする必要があるユーティリティ クラスを表します。
OuterClass:
class OuterClass { private: int secretData; // 敏感数据 public: // 可以公开访问的数据和方法 };
Inner Class:
class InnerClass { friend class OuterClass; // 声明友元类 public: void printData(OuterClass& outerObj) { // 访问OuterClass的私有成员 secretData cout << "敏感数据:" << outerObj.secretData << endl; } };この場合、
InnerClass# Member のみが機能します。 ## は、OuterClass
の secretData
メンバーにアクセスできます。他のクラスはこのプライベート メンバーにアクセスできません。
フレンド クラスは一方向の関係です。
inner class
のパブリック メンバーにのみアクセスできますが、inner class
は OuterClass
のすべてのメンバーにアクセスできます。
フレンド クラスは、クラス テンプレートまたはクラスのインスタンス化です。
以上がC++ フレンド関数の詳細説明: フレンド クラスを宣言するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。