STL deque - Problème avec l'operator==
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'utilise et 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
exemple:
Code:
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; |
J'ai sa
Code:
1 2 3
| console:
j diff k //note: au lieu de j egale k
j diff 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> ?