Maison > Article > développement back-end > Explication détaillée des fonctions amies C++ : quelles sont les limitations des fonctions amies lors de l'accès aux membres privés ?
Les fonctions Friends peuvent accéder aux membres privés, mais sont restreintes : elles ne peuvent accéder qu'aux membres privés de la classe actuelle (ne peuvent pas accéder aux classes héritées) et ne peuvent pas les modifier directement. En combat réel, les fonctions d'ami peuvent accéder aux membres privés via des références ou des pointeurs, comme accéder au nom de membre privé de la classe Étudiant et imprimer les informations sur l'étudiant.
Explication détaillée de la fonction ami C++ : Restrictions d'accès aux membres privés
Qu'est-ce qu'une fonction ami ?
Une fonction ami est une fonction qui n'appartient à aucune classe, mais peut accéder à tous les membres déclarés dans la classe (y compris les membres privés). Les fonctions Friend permettent une interaction étroite entre différentes classes et permettent une utilisation flexible des classes encapsulées.
Restrictions sur les fonctions d'ami accédant aux membres privés
Il existe certaines restrictions lorsque les fonctions d'ami accèdent aux membres privés :
Cas pratique
Supposons que nous ayons une classe Student
, qui a un membre privé name
et un membre public getAge()
. Nous créons une fonction amie printStudentInfo()
pour accéder au membre privé name
et imprimer les informations sur l'étudiant. Student
类,它有一个私有成员 name
和一个公有成员 getAge()
。我们创建一个友元函数 printStudentInfo()
来访问私有成员 name
并打印学生信息。
class Student { private: string name; public: int getAge(); // 声明友元函数 friend void printStudentInfo(const Student& student); }; void printStudentInfo(const Student& student) { // 可以访问私有成员 cout << "Name: " << student.name << endl; // 不能修改私有成员 // student.name = "John Doe"; // 错误 } int main() { Student student1; student1.setName("Jane Doe"); printStudentInfo(student1); return 0; }
输出:
Name: Jane Doe
在这个示例中,友元函数 printStudentInfo()
可以访问私有成员 name
rrreee
printStudentInfo()
peut accéder au membre privé nom
, mais ne peut pas le modifier. De plus, il convient de noter que les fonctions amies ne peuvent accéder aux membres de la classe que via des références ou des pointeurs, et ne peuvent pas utiliser directement les membres d'objet. 🎜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!