[gull] cours C++

Marc Mongenet marc.mongenet at gmail.com
Fri Feb 24 13:53:01 CET 2006


Le 24/02/06, Daniel Cordey<dc at mjt.ch> a écrit :
> On Friday 24 February 2006 11:47, Marc Mongenet wrote:
>
> > Que veux-tu dire par "operateurs de classes" ?
>
> CAD qu'un test d'egalite ou d'equivalence n'existe pas forc3ment pour une
> classe. Dans le cas ou la calsse cree n'herite pas de ces operateurs, il faut
> les creer. C'est tout, je ne cache aucune theorie quelconque la derriere. Je
> dis cela car j'ai souvent vu des gens s'empecher d'utiliser certains
> operateurs de base car ils n'avaient pas penser a les redefinir pour cette
> classe. A la place de cela, on voit parfois des methodes usine-a-gaze... :-)

C'est d'autant plus dommage que la bibliothèque standard définit dans
<utility> des templates pour !=, >, <= et >= à partir de < et ==. Il suffit
donc de définir < et == lorsqu'on crée une nouvelle classe.

// operator> définit à l'aide d'operator<
template <class C> inline bool operator>(const C& a, const C& b)
{ return b < a; }


Marc Mongenet



More information about the gull mailing list