Maison  >  Article  >  développement back-end  >  Une fonction C++ peut-elle être déclarée comme fonction amie ? Quelles sont les caractéristiques des fonctions amies ?

Une fonction C++ peut-elle être déclarée comme fonction amie ? Quelles sont les caractéristiques des fonctions amies ?

王林
王林original
2024-04-19 22:12:01373parcourir

Oui, les fonctions C++ peuvent être déclarées comme fonctions amies. Les fonctions Friend ont les propriétés suivantes : Elles peuvent accéder aux membres privés et protégés d'une classe. Vous ne pouvez pas accéder directement au pointeur this d'une classe. Peut être défini en dehors de la portée de la classe. Ce n'est pas une fonction membre de la classe et n'appartient pas à l'interface de la classe.

C++ 函数可以声明为友元函数吗?友元函数的特性是什么?

Une fonction C++ peut-elle être déclarée comme fonction amie ? Quelles sont les caractéristiques des fonctions amies ?

Fonctions Ami

Les fonctions Ami sont des fonctions non membres qui ont accès aux membres privés et protégés d'une classe. Les fonctions Friend peuvent accéder aux données encapsulées dans d'autres classes et sont très utiles dans des situations particulières.

Déclarer les fonctions amis

En C++, les fonctions amis peuvent être déclarées de deux manières :

  • Fonction ami global :

    friend void myFunction(classA& object);
  • Fonction ami membre :

    class classA {
      friend void classB::myFunction(classA& object);
    };

s de fonctions amis

Les fonctions Ami ont les caractéristiques suivantes :

  • Peut accéder aux membres privés et protégés d'une classe.
  • Vous ne pouvez pas accéder directement au pointeur this d'une classe.
  • Peut être défini en dehors du cadre du cours.
  • Ce n'est pas une fonction membre de la classe et n'appartient pas à l'interface de la classe.

Cas pratique

Supposons que nous ayons une classe Counter, qui représente un compteur. Son membre privé est un entier count représentant le nombre. Counter 类,它表示一个计数器。它的私有成员是一个表示计数的整数 count

class Counter {
private:
    int count;
public:
    Counter(int c) : count(c) {}
};

我们希望创建一个友元函数 increment

friend void increment(Counter& c) {
    c.count++;
}

Nous voulons créer une fonction amie increment qui peut incrémenter la valeur du compteur.

int main() {
    Counter c(0);
    increment(c);
    cout << c.count << endl; // 输出 1
    return 0;
}

Maintenant, nous pouvons utiliser les fonctions d'ami pour incrémenter la valeur du compteur :

rrreee

Conclusion

Les fonctions d'ami sont une fonctionnalité puissante en C++ qui permet d'accéder aux membres privés et protégés. Ils peuvent être déclarés de deux manières et sont utiles dans des cas particuliers, par exemple lorsqu'il faut accéder à des données privées depuis d'autres 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn