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
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
Classe.h
public :
type-de-c operator (const B &)const;
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)
type-de-c operator (int, const B &b)const
{ …
}
= é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_dest(classe_source,
classe_dest);
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é)
public :
friend typeRET operator (p_classe_source, p_classe_dest);
typeRET operator (…)
{ …
}
· utiliser des accesseurs = méthodes publiques qui retournent les attr privés
public :
typeRET attr( ) {return attr_;};