Petit probléme de surcharge d'opérateur .
Re-Bonjour .
J'ai deja surchargé des opérateur avant ... et la je ne comprend pas ce qu'il me manque :
je cherche a tester si un objet t est présent ou non dans un vector avant de l'ajouter . pour cela je fait :
Code:
1 2
|
if ( std::find(Trans.begin(), Trans.end(),t ) != Trans.end() ) blabla |
J'ai ensuite surchargé les opérateur == et != de cette facons :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
bool operator == (const cTransition & )const;
bool operator != (const cTransition &)const ;
bool cTransition::operator == (const cTransition & t) const
{
return ( (ini == t.ini) && (fin == t.fin) && (lettre == t.lettre ) ) ;
}
bool cTransition::operator != (const cTransition & t) const
{
return ( (ini == t.ini) || (fin == t.fin) || (lettre == t.lettre ) ) ;
} |
Mais rien n'y fait , meme aprés voir ajouté 2 fois le meme objet t, je ne passe jamasi dans ce qu'il y a aprés le if ... :/
J'ai testé une comparaison simple du style ( t == Trans[i] ), pas de probléme ca marche ca par contre .
J'ai meme rajouté tout les opérateur ( > >= < <= ) il semble que std::find ne fasse appel a aucun de mes opérateur redéfinis :(
edit : j'ai oublié de dire comment je déclarait tout ca :
Code:
1 2 3
|
cTransition * t = new cTransition() ;
std::vector< cTransition *> Trans ; |