Maison >développement back-end >C++ >Explication détaillée des fonctions amies C++ : quels problèmes les fonctions amies sont-elles utilisées pour résoudre ?
Les fonctions Friend sont des fonctions spéciales en C++ qui peuvent accéder aux membres privés d'autres classes. Ils résolvent les restrictions d'accès causées par l'encapsulation de classe et sont utilisés pour résoudre des problèmes tels que les opérations de données entre classes, l'accès aux fonctions globales aux membres privés et le partage de code entre classes ou unités de compilation. Utilisation : utilisez le mot-clé ami pour déclarer une fonction ami afin d'accéder aux membres privés. Remarque : utilisez les fonctions amies avec prudence pour éviter les erreurs causées par le contournement du mécanisme d'encapsulation. Utilisez-le uniquement lorsque cela est nécessaire, limitez l'accès et utilisez les fonctions de modification avec parcimonie.
Fonction ami C++ Explication détaillée : Un outil puissant pour lever les restrictions d'accès
Introduction
Une fonction ami est un type spécial de fonction en C++ qui peut accéder aux membres privés d'une autre classe. Il permet au monde extérieur d'accéder aux données et aux méthodes initialement inaccessibles au monde extérieur, résolvant ainsi les problèmes de restriction d'accès causés par certaines encapsulations de classes.
Objectif
Les fonctions d'ami sont généralement utilisées pour résoudre les problèmes suivants :
Syntaxe
La syntaxe pour déclarer une fonction ami est la suivante :
class ClassName { // ...成员声明 friend FunctionName; };
où FunctionName
est le nom de la fonction ami. FunctionName
是友元函数的名称。
实战案例
假设我们有两个类 Student
和 Teacher
,它们需要相互访问彼此的私有数据。我们可以使用友元函数来实现:
class Student { private: int marks; }; class Teacher { private: int salary; public: friend void calculateBonus(const Student& student, const Teacher& teacher); }; void calculateBonus(const Student& student, const Teacher& teacher) { std::cout << "Student's marks: " << student.marks << std::endl; std::cout << "Teacher's salary: " << teacher.salary << std::endl; } int main() { Student student; student.marks = 90; Teacher teacher; teacher.salary = 50000; calculateBonus(student, teacher); return 0; }
在这个例子中,calculateBonus
函数被声明为 Student
和 Teacher
类的友元函数,因此它可以访问这两个类的私有成员 marks
和 salary
Cas pratique
Supposons que nous ayons deux classesÉtudiant
et Enseignant
, et qu'ils doivent accéder aux données privées de chacun. Nous pouvons utiliser des fonctions amies pour y parvenir : rrreee
Dans cet exemple, la fonctioncalculateBonus
est déclarée comme amie de l'Étudiant
et du Professeur
classes fonctionnent, il peut donc accéder aux marques
et au salaire
des membres privés de ces deux classes. 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!