Maison >développement back-end >C++ >Comment les déclarations d'ami en C peuvent-elles contrôler l'accès aux membres du groupe ?

Comment les déclarations d'ami en C peuvent-elles contrôler l'accès aux membres du groupe ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-20 15:16:26442parcourir

How Can Friend Declarations in C   Control Access to Class Members?

Comprendre les déclarations d'ami en C

En C , la déclaration d'ami fournit un moyen de contrôler l'accès aux membres de la classe en accordant aux classes externes l'accès à données et fonctions autrement protégées ou privées.

Avantages et utilisation Cas

Les déclarations d'amis peuvent être bénéfiques lorsque :

  • Vous avez une classe avec des données privées ou des fonctionnalités auxquelles une autre classe doit accéder.
  • Vous souhaitez surcharger des opérateurs tels que "<<" et ">>" et ajoutez-les comme amis à d'autres classes dans le même espace de noms.

Éviter les violations d'encapsulation

L'utilisation de déclarations d'amis ne rompt pas nécessairement l'encapsulation, car elle n'accorde que accès à des classes externes spécifiques définies dans le même espace de noms. Bien qu'il puisse réduire l'encapsulation, il permet un partage contrôlé des données privées lorsque cela est nécessaire.

Exemple : accès ami pour les opérateurs surchargés

Considérez le scénario suivant : vous souhaitez créez des opérateurs d'insertion et d'extraction de flux personnalisés pour une classe nommée "Point". Vous pouvez utiliser des déclarations d'amis pour y parvenir :

class Point
{
    int x, y;
    friend ostream& operator<<(ostream& out, const Point& point);
    friend istream& operator>>(istream& in, Point& point);
};

ostream& operator<<(ostream& out, const Point& point)
{
    out << "(" << point.x << ", " << point.y << ")";
    return out;
}

istream& operator>>(istream& in, Point& point)
{
    in >> point.x >> point.y;
    return in;
}

Avec cette approche, vous pouvez saisir et sortir des objets Point en utilisant le standard "<<" et ">>" opérateurs, même si la classe est encapsulée.

Directives d'utilisation des déclarations d'ami

  • Utilisez les déclarations d'ami uniquement lorsque cela est nécessaire.
  • Limitez les nombre de classes déclarées comme amis.
  • Utilisez les déclarations d'amis dans le même espace de noms pour éviter les conflits.
  • Gardez à l'esprit que les déclarations d'amis peuvent facilement conduire à des bugs subtils si elles ne sont pas utilisées judicieusement.

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