Maison > développement back-end > C++ > Fonction ami vs fonction membre pour l'opérateur

Fonction ami vs fonction membre pour l'opérateur

Mary-Kate Olsen
Libérer: 2024-12-14 16:07:16
original
691 Les gens l'ont consulté

Friend Function vs. Member Function for Operator

Opérateur<< en C : Fonction Ami vs Fonction Membre

En C, l'opérateur<< peut être définie soit comme une fonction amie, soit comme une fonction membre. Cet article explore la justification du choix de l'un plutôt que de l'autre dans des scénarios spécifiques.

Approche de la fonction amie pour l'opérateur<<

Lors de la définition de l'opérateur<< en tant que fonction ami, la syntaxe implique généralement ce qui suit :

<🎝🎝🎝>

Cette approche est recommandée lorsque la comparaison des relations implique l'examen des membres privés de la classe. Étant donné que les fonctions amies ont accès aux membres privés d'une classe, elles peuvent effectuer la comparaison directement.

Approche des fonctions membres pour l'opérateur<<

Dans cette approche, l'opérateur≪≪ est défini comme une fonction membre de la classe :

<🎝🎝🎝>

Cette approche est appropriée lorsque la comparaison implique des données accessibles au public ou des opérations simples. Cependant, elle présente une limitation clé : si la comparaison nécessite un accès aux membres privés, l'approche de fonction membre ne peut pas être utilisée.

Comparaison des approches

Streaming Opérations :
Lors de la définition de l'opérateur<< pour les opérations de streaming, les fonctions amies et les fonctions membres peuvent être utilisées. Cependant, les fonctions amies doivent être utilisées si l'opération de streaming doit modifier l'objet de flux (par exemple, en ajoutant des sauts de ligne).

Opérateurs d'égalité et de relation :
Pour les opérateurs tels que = =, !=, <, >, etc., il est préférable de les définir en tant que fonctions membres. Cette approche permet une comparaison facile des membres privés au sein de la classe. De plus, cela simplifie le code en évitant le besoin de fonctions amies supplémentaires.

Exemple

Considérons l'exemple suivant d'une classe Paragraph avec une méthode to_str() :

Fonction Ami Approche :

Approche de la fonction membre :

Dans ce cas, l'approche de la fonction ami est privilégiée car elle permet d'accéder au privé membre m_para pour les opérations de streaming.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal