Classes amies

Lorsqu’on souhaite que tous les membres d’une classe puissent accéder aux parties privées d’une autre classe, on peut déclarer « amie » une classe entière :

class autre;       // déclaration				class exemple {     // parties privées...     public :     friend autre;     // ...     };class autre {     // ...     };

Les membres de la classe autre peuvent tous modifier les parties privées des instances de exemple. Noter la déclaration de autre avant celle de exemple, obligatoire (sinon on obtient Error : Undefined symbol 'autre', symbole 'autre' non défini). Pour l’éviter, on peut éventuellement changer l’ordre de définition, mais il suffit en fait de préciser le sélecteur class derrière friend :

class exemple {     // parties privées...     public :     friend class autre;     // ...     };class autre {     // ...     };

Cette écriture, comme la précédente avec une déclaration, est inutilisable pour des méthodes isolées. De ce fait, si l’on souhaite qu’une méthode de autre soit amie de exemple et une de exemple amie de autre, il faut déclarer les deux classes entièrement amies l’une de l’autre.

Précédent Précédent Sommaire Sommaire Suivant Suivant