Maison > Article > développement back-end > Explication détaillée des fonctions ami C++ : Comment déclarer une classe ami ?
En C++, une classe amie permet à toutes les fonctions membres d'une classe d'accéder aux membres privés d'une autre classe. Lors de la déclaration d'une classe amie, utilisez le mot-clé Friend Class, par exemple : OuterClass déclare la classe interne comme classe amie : classe interne de la classe amie ; seules les fonctions membres de la classe interne peuvent accéder aux membres privés d'OuterClass.
Explication détaillée de la fonction ami C++ : Comment déclarer une classe amie
Avant-propos
En C++, la relation amie est un mécanisme puissant qui permet aux fonctions non membres d'accéder aux membres privés d'une classe. Une classe amie est une forme particulière de relation d'amitié qui permet à toutes les fonctions membres d'une classe d'accéder aux membres privés d'une autre classe.
Déclaration de classe amie
Pour déclarer une classe amie, vous devez utiliser le mot clé ami
dans la définition de la classe. La syntaxe est la suivante : friend
关键字。语法如下:
class OuterClass { // 成员变量和函数 friend class InnerClass; };
这将允许 InnerClass
中的所有成员函数访问 OuterClass
的私有成员,而其他类则无法访问。
实战案例
让我们考虑一个实际示例,其中 OuterClass
表示一个包含敏感数据的类,而 内层类
表示一个需要访问该数据的实用程序类。
OuterClass:
class OuterClass { private: int secretData; // 敏感数据 public: // 可以公开访问的数据和方法 };
内层类:
class InnerClass { friend class OuterClass; // 声明友元类 public: void printData(OuterClass& outerObj) { // 访问OuterClass的私有成员 secretData cout << "敏感数据:" << outerObj.secretData << endl; } };
在这种情况中,只有 InnerClass
中的成员函数可以访问 OuterClass
的 secretData
成员。其他类无法访问该私有成员。
注意:
OuterClass
只能访问 内层类
的公共成员,而 内层类
可以访问 OuterClass
的所有成员。friend class*
rrreeeInnerClass
d'accéder aux membres privés de <code>OuterClass, mais pas aux autres classes. OuterClass
représente une classe contenant des données sensibles, et Inner Class
représente une classe qui doit accéder à ces données. Classe utilitaire. 🎜🎜🎜OuterClass : 🎜🎜rrreee🎜🎜Inner Class : 🎜🎜rrreee🎜Dans ce cas, seules les fonctions membres de InnerClass
peuvent accéder au de <code>OuterClass
> Membre secretData. Les autres classes ne peuvent pas accéder à ce membre privé. 🎜🎜🎜Remarque : 🎜🎜OuterClass
ne peut accéder qu'aux membres publics de la classe interne
, tandis que la classe interne
peut accéder à tous les membres de <code>OuterClass. 🎜friend class*
dans la définition de la classe. 🎜🎜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!