Salut
Je suis en train de faire des tests avec la STL et je rencontre un petit problème, je sais pas si j'ai manqué quelque chose, mais j'aurais voulu savoir
J'utiliseet je voudrais comparée deux ojet de ce type mais la où sa coince c'est que les objets stockés à l'interieur sont des pointeurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::deque<carte*>
exemple:
J'ai sa
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 std::deque<carte*> *j = new std::deque<carte*>; j->push_back(new carte(1,1)); j->push_back(new carte(2,1)); std::deque<carte*> *k = new std::deque<carte*>; k->push_back(new carte(1,1)); k->push_back(new carte(2,1)); std::deque<carte*> *l = new std::deque<carte*>; l->push_back(new carte(1,1)); l->push_back(new carte(3,1)); if(*j==*k) std::cout << "j egale k" << std::endl; else std::cout << "j diff k" << std::endl; if(*j==*l) std::cout << "j egale l" << std::endl; else std::cout << "j diff l" << std::endl; delete j; delete k; delete l;
Donc a priori ici l'operator== compare les adresse des pointeurs mais n'apelle pas l'operator== de carte, comment faire pour l'appeler, dois-je passer par une derivation de std::deque<T> ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3console: j diff k //note: au lieu de j egale k j diff l
Partager