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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 cTransition * t = new cTransition() ;
std::vector< cTransition *> Trans ;