cs_clenio
Messages postés26Date d'inscriptionmardi 14 janvier 2003StatutMembreDernière intervention28 novembre 2006
-
7 avril 2003 à 14:58
cs_clenio
Messages postés26Date d'inscriptionmardi 14 janvier 2003StatutMembreDernière intervention28 novembre 2006
-
8 avril 2003 à 18:07
Salut à tous
j'ai une classe pour laquelle j'ai besion de déclarer des opérateurs(ex: = , - , + , >,<,..).
Je ne sais pas du tout comment je dois faire!
C'est pour un projet en c++ sous Visual C++.
cs_vieuxLion
Messages postés455Date d'inscriptionsamedi 26 octobre 2002StatutMembreDernière intervention 6 avril 20048 7 avril 2003 à 17:42
bonjour,
OK pour les explications ... mais les opérateurs ont des prototypes "consacrés"
exemple pour une classe A :
bool operator==(const A& a) const;
A& operator=(const A& a);
etc...
un aperçu des questions à se poser lors du développement d'un opérateur se trouve en
PERFORMANCE : I++ OU ++I ?
sinon, comme l'a bien fait superpa, l'idée est de réutiliser l'opérateur des types de base dans le corps de ton nouvel opérateur.
cs_vieuxLion
Messages postés455Date d'inscriptionsamedi 26 octobre 2002StatutMembreDernière intervention 6 avril 20048 7 avril 2003 à 17:50
autre remarque,
on peut chercher à optimiser les copies dans le cas de l'opérateur =
a toi de voir le cout d'un test "if" par rapport aux copies
Personnes& operator= (const Personnes& p)
{
if (&p == this) return *this; //cas d'auto affectation
id = p.id;
nom = p.nom;
return *this;
}
Autre remarque :
l'opérateur = est généré par défaut par le compilateur
il n'est peut être pas nécessaire de le redéfinir... tout dépend du contenu de la classe.