Maison > Article > développement back-end > Comment les fonctions amies C++ accèdent-elles aux membres privés ?
Il existe deux manières pour les fonctions ami d'accéder aux membres privés en C++ : déclarer la fonction ami au sein de la classe. Déclarez une classe comme classe amie afin que toutes les fonctions membres de la classe puissent accéder aux membres privés d'une autre classe.
Comment la fonction ami C++ accède aux membres privés
Une fonction ami est une fonction définie en dehors d'une classe mais qui peut accéder aux membres privés de la classe. Il existe deux manières d'accéder aux membres privés par les fonctions ami :
1 Déclarer une fonction ami
Déclarer une fonction ami au sein de la classe, la syntaxe est la suivante :
class ClassName { public: // 类成员... // 声明友元函数 friend void friend_function(); };
De cette façon, l'ami déclaré. la fonction peut accéder aux membres privés de cette classe.
2. Déclarez une classe amie
Déclarez une classe comme classe amie, et toutes les fonctions membres de la classe peuvent accéder aux membres privés d'une autre classe. La syntaxe est la suivante :
class ClassName1 { public: // 类成员... // 声明友元类 friend class ClassName2; };
Toutes les fonctions membres déclarées dans ClassName2
peuvent accéder aux membres privés de ClassName1
. 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
Cas pratique
🎜🎜Considérons le code C++ suivant : 🎜Name: John Age: 30 Name: John Age: 30🎜Dans cet exemple, la fonction
print_person_info
est une fonction ami qui a accès aux propriétés privées de la Person
. code> membre de la classe. Dans la classe Person
, la fonction print_info
accède également aux membres privés à l'aide d'une déclaration de fonction ami. 🎜🎜L'exécution du code ci-dessus affichera : 🎜rrreeeCe 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!