objet = objet-cible opsurdéfini paramètre-explicite

 

Accesseur = méthode publique qui retourne les attributs privés d'une classe.


c = a Š b

a de classe A

b de classe B

 

Surdéfinir l'opérateur

 

Attn : on surdéfinit l'opérateur Š dans la classe de l'opérande de gauche

Þ a Š b est surdéfini dans la classe de a

 

En général

Classe.h

public :

   type-de-c operator Š (const B &)const;

Classe.C

type-de-c  A::operator Š (const B &b)const

{  

}

 

Cas particulier : a appartient à la classe int

Définir une fonction externe i.e. hors classes (¹méthode)

 

Ppal.C
ou après }; dans Classe.h puis définition dans Classe.C

type-de-c operator Š (int, const B &b)const

{

}

 

Définir une conversion entre 2 classes

 

= écrire un constructeur de la classe de départ qui prend un objet de la classe à convertir en paramètre

+ surdéfinir Š pour 2 objets de la classe_dest

 

Conversion : classe_source ® classe_dest

Classe.h
public :

   classe_dest(classe_source, classe_dest);

Classe.C

classe_dest::classe_dest(param_classe_source, param_classe_dest)

{

}

Rq : pas d'accès aux données privées (¬ fonction externe ¹ méthode)

Attn : jms de const final pour une méthode

 

Pour convertir les objets d'une classe en une autre, il faut accéder aux données privées

 

·  utiliser les fonctions amies de la classe (déconseillé)

Classe.h

public :

   friend typeRET operator Š (p_classe_source, p_classe_dest);

Classe.C

typeRET operator Š (…)

{   

}

 

·  utiliser des accesseurs = méthodes publiques qui retournent les attr privés

Classe.h

public :

   typeRET attr( ) {return attr_;};