Maison >développement back-end >C++ >À quels types de membres les fonctions amies C++ peuvent-elles accéder ?
En C++, les fonctions amies peuvent accéder à tous les membres publics, protégés et privés d'une classe, mais l'accès aux membres privés est restreint et ne peut être effectué que lorsqu'une fonction membre de la classe est appelée.
Qu'est-ce qu'une fonction ami ?
La fonction Friend est une fonction spéciale en C++ qui peut accéder aux membres privés et protégés d'une classe. Les fonctions Friend doivent être déclarées en dehors de la définition de la classe.
Membres de type auxquels les fonctions d'ami peuvent accéder
Les fonctions d'ami peuvent accéder aux membres de type suivants :
Cas pratique
Considérons le code suivant :
class MyClass { private: int m_num; public: MyClass(int num) : m_num(num) {} friend void print_num(MyClass& obj) { std::cout << obj.m_num << std::endl; } }; int main() { MyClass obj(42); print_num(obj); // 友元函数访问私有成员 return 0; }
Résultat de sortie :
42
Dans cet exemple, print_num() est une fonction amie de MyClass. Il peut accéder au membre privé m_num même s'il ne s'agit pas d'une fonction membre de MyClass.
Accès restreint
Il est à noter que l'accès des fonctions amis aux membres privés est restreint. Les fonctions amies ne peuvent accéder aux membres privés que lorsqu'une fonction membre de la classe est appelée. En d’autres termes, les fonctions amies ne peuvent pas accéder directement aux membres privés de l’extérieur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!