Maison > développement back-end > C++ > le corps du texte

À quels types de membres les fonctions amies C++ peuvent-elles accéder ?

王林
Libérer: 2024-04-15 17:09:01
original
913 Les gens l'ont consulté

En C++, les fonctions amies peuvent accéder à tous les membres publics, protégés et privés d'une classe, mais l'accès aux membres privés est restreint et ne peut être effectué que lorsqu'une fonction membre de la classe est appelée.

C++ 友元函数能访问哪些类型成员?

À quel type de membres les fonctions amies C++ peuvent-elles accéder ?

Qu'est-ce qu'une fonction ami ?

La fonction Friend est une fonction spéciale en C++ qui peut accéder aux membres privés et protégés d'une classe. Les fonctions Friend doivent être déclarées en dehors de la définition de la classe.

Membres de type auxquels les fonctions d'ami peuvent accéder

Les fonctions d'ami peuvent accéder aux membres de type suivants :

  • membres publics : Les fonctions d'ami peuvent accéder à tous les membres publics de la classe.
  • membres protégés : Les fonctions d'ami peuvent accéder à tous les membres protégés de la classe.
  • membres privés : Les fonctions ami peuvent accéder aux membres privés d'une classe, mais uniquement lorsque la fonction ami est appelée par une fonction membre de la classe.

Cas pratique

Considérons le code suivant :

class MyClass {
private:
    int m_num;

public:
    MyClass(int num) : m_num(num) {}

    friend void print_num(MyClass& obj) {
        std::cout << obj.m_num << std::endl;
    }
};

int main() {
    MyClass obj(42);
    print_num(obj);  // 友元函数访问私有成员
    return 0;
}
Copier après la connexion

Résultat de sortie :

42
Copier après la connexion

Dans cet exemple, print_num() est une fonction amie de MyClass. Il peut accéder au membre privé m_num même s'il ne s'agit pas d'une fonction membre de MyClass.

Accès restreint

Il est à noter que l'accès des fonctions amis aux membres privés est restreint. Les fonctions amies ne peuvent accéder aux membres privés que lorsqu'une fonction membre de la classe est appelée. En d’autres termes, les fonctions amies ne peuvent pas accéder directement aux membres privés de l’extérieur.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal