C のフレンド関数は、アクセス指定子または名前空間を通じてアクセス権を制限し、特定の関数または特定の名前空間内の関数のみがクラスのプライベート メンバーにアクセスできるようにすることができます。
#C フレンド機能の詳しい解説:フレンド機能のアクセス権を制限するには?
C では、フレンド関数は、外部関数がクラスのプライベート メンバーにアクセスできるようにする特別な関数です。これにより、あるクラスの外部のプライベート データや関数にアクセスできるようになり、特定の状況でより高い柔軟性が得られます。フレンド関数のアクセス権を制限する
フレンド宣言を制限することで、フレンド関数のアクセス権を非公開メンバーに制限できます。これを行うには 2 つの方法があります:方法 1: アクセス指定子を使用する
アクセス指定子 (public、protected、または private) の使用を制限できます。 フレンド関数のアクセス許可。構文は次のとおりです。class MyClass { private: // 私有成员只能被友元函数访问 friend void friendFunction(); };
方法 2: 名前空間を使用する
名前空間を使用して、フレンド関数の表示を制限することもできます。構文は次のとおりです。namespace MyNamespace { class MyClass { private: // 私有成员由 MyNameSpace 命名空间内部所有友元函数访问 friend class MyFriendClass; }; }
実用的なケース
次の 2 つのクラスがあるとします。class Person { private: string name; int age; }; class FriendClass { public: // 可以访问私有成员,因为它是一个友元类 void printPersonDetails(Person person) { cout << person.name << ", " << person.age << endl; } };
FriendClass は
person クラスのフレンド クラスであるため、
name や
age などのプライベート メンバーにアクセスできます。
例を実行します
int main() { Person person{"John Doe", 30}; FriendClass friendObj; friendObj.printPersonDetails(person); return 0; }
John Doe, 30
以上がC++のフレンド関数の詳細解説:フレンド関数のアクセス権を制限するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。