Les fonctions Friend peuvent accéder aux données privées et protégées des membres de la classe, mais les fonctions globales ne le peuvent pas. Les fonctions Friend sont déclarées dans la déclaration de classe et les fonctions globales sont déclarées en dehors de la classe. Utilisez le mot-clé ami pour déclarer les fonctions ami et utilisez l'extern. mot-clé pour déclarer une fonction globale. Les fonctions amies obtiennent l'autorisation d'accéder aux variables membres de la classe via une déclaration. Par exemple, en déclarant une fonction amie getPrivateData, vous pouvez accéder à la variable privée x de la classe MyClass.
C++ Explication détaillée des fonctions amies
La différence entre les fonctions amies et les fonctions globales
En C++, une fonction amie est une fonction spéciale qui peut accéder à des fonctions privées déclarées dans une fonction membre de classe et protégées membres de données. En revanche, les fonctions globales sont déclarées en dehors de la classe et n’ont pas accès aux données membres privées et protégées.
Syntaxe de la fonction ami
La syntaxe de la fonction ami est la suivante :
friend 返回类型 函数名(参数列表);
Par exemple, déclarez une fonction ami qui peut accéder aux données privées des membres dans MaClasse
: MyClass
中私有数据成员的友元函数:
friend int getPrivateData(MyClass& object);
友元函数和全局函数的区别
友元函数和全局函数的主要区别如下:
friend
关键字声明,而全局函数使用 extern
关键字声明。实战案例
考虑一个包含私有成员变量 x
的 MyClass
类:
class MyClass { private: int x; public: int getX(); void setX(int value); };
要访问 MyClass
的私有数据成员 x
,我们可以声明一个友元函数:
friend int getPrivateData(MyClass& object) { return object.x; }
使用友元函数
我们可以使用友元函数来访问 MyClass
int main() { MyClass object; object.setX(10); int privateData = getPrivateData(object); cout << "Private data: " << privateData << endl; return 0; }
Friend La différence entre les fonctions et les fonctions globales
🎜🎜Les principales différences entre les fonctions amies et les fonctions globales sont les suivantes : 🎜friend
, tandis que les fonctions globales sont déclarées à l'aide du mot-clé extern
. MyClass
contenant une variable membre privée x
: 🎜Private data: 10
MyClass <code>x
de données privées, nous pouvons déclarer une fonction ami : 🎜rrreee🎜🎜Utilisation des fonctions ami🎜🎜🎜Nous pouvons utiliser les fonctions ami pour accéder à MyClass
' Membre de données privées : 🎜rrreee🎜L'exécution de ce code 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!