Lorsquon souhaite que tous les membres dune classe puissent accéder aux parties privées dune 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 lordre 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 lon souhaite quune 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 lune de lautre.
Précédent | Sommaire | Suivant |