C のフレンド関数がプライベート メンバーにアクセスするには、2 つの方法があります。クラス内でフレンド関数を宣言します。クラスをフレンド クラスとして宣言すると、クラス内のすべてのメンバー関数が別のクラスのプライベート メンバーにアクセスできるようになります。
C Friend 関数のプライベート メンバーへのアクセス方法
フレンド関数はクラスの外部で定義されていますが、アクセスできますプライベートの関数クラスのメンバー。プライベート メンバーへのフレンド関数のアクセスを実装するには 2 つの方法があります:
1. フレンド関数の宣言
クラス内でフレンド関数を宣言します。構文は次のとおりです。
class ClassName { public: // 类成员... // 声明友元函数 friend void friend_function(); };
このようにして、宣言されたフレンド関数はクラスのプライベート メンバーにアクセスできます。
2. フレンド クラスの宣言
クラスをフレンド クラスとして宣言すると、クラス内のすべてのメンバー関数が別のクラスのプライベート メンバーにアクセスできます。構文は次のとおりです。
class ClassName1 { public: // 类成员... // 声明友元类 friend class ClassName2; };
ClassName2
で宣言されたすべてのメンバー関数は、ClassName1
のプライベート メンバーにアクセスできます。
実践的なケース
次の C コードを考えてみましょう:
class Person { private: int age; string name; public: // 友元函数 friend void print_person_info(const Person& person); // 访问私有成员的友元函数 void print_info() const { cout << "Name: " << name << endl; cout << "Age: " << age << endl; } }; // 友元函数外部分类的定义 void print_person_info(const Person& person) { cout << "Name: " << person.name << endl; cout << "Age: " << person.age << endl; } int main() { Person person; person.name = "John"; person.age = 30; person.print_info(); print_person_info(person); return 0; }
この例では、print_person_info
関数はフレンド関数です。 、 Person
クラスのプライベート メンバーにアクセスできます。 Person
クラスでは、print_info
関数も、フレンド関数宣言を使用してプライベート メンバーにアクセスします。
上記のコードを実行すると出力:
Name: John Age: 30 Name: John Age: 30
以上がC++ フレンド関数はプライベート メンバーにどのようにアクセスしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。