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
Mary-Kate Olsenoriginal
2024-12-14 16:07:16808parcourir

Friend Function vs. Member Function for Operator

Opérateur

En C, l'opérateur

Approche de la fonction amie pour l'opérateur

Lors de la définition de l'opérateur

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

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!

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