Trier un vector de pointeurs - C++ - Programmation
Marsh Posté le 22-10-2005 à 01:13:06
return a1 < a2;
tu compares des adresses. Le reste de ton code a une logique douteuse.
Marsh Posté le 22-10-2005 à 01:16:25
mais non il est parfaitement logique mon code a part que j'ai zapper les * effectivement merci
et en quoi elle est douteuse ?????
PS :
Oui je comparé des adresses et je faisais pas de tests
Code :
|
C'est good là, ça marche.
Marsh Posté le 22-10-2005 à 01:27:00
const Geom * dans la signature
sinon ta logique de tri polymorphe. J'aurais tendance à éviter de comparer des objets qui ne sont pas du même type. Où alors pas operator< virtuel ou dépendant du type réel. Sinon tu risques d'avoir un operateur pas symétrique.
Marsh Posté le 22-10-2005 à 01:42:48
Point *p = dynamic_cast<Point *>(&g);
t'es pas obligé de passer en pointeur tu sais ...
Marsh Posté le 22-10-2005 à 13:23:27
Oui mais c'est le seul type de cast que je connais qui donne une information si le cast a échoué, et puis de toute façon il cast que si c'est du Point * donc c'est carrement plus secure que le static_cast.
Sinon pour ce qui est de la comparaison de 2 objets differents je balance une exception. Genre je peux pas comparer un Point avec un Rectangle par exemple mais je peux comparer un Point avec un Point_l ou Point_c (lumineux ou coloré).
Marsh Posté le 22-10-2005 à 14:46:22
je te parle pas de ça boolay
si t'as des référence, fais un dynamic_cast<Truc&> qui balance une bad_cast si ça échoue.
Dans le cas de ton tri, je vois toujours pas la sémantique de trier une collection d'objets hétérogènes ...
Marsh Posté le 22-10-2005 à 00:57:23
Salut,
Voila j'ai une certaine classe abstraite Geom (dont ca classe fille Point) qui surcharge l'operateur < donc on peut comparer deux Point entre eux sans souci j'ai testé ca marche au top.
Mon but est de trier un vector de pointeurs sur Geom ...
Dans le main :
Mais voila il trie rien du tout ou au mieux il en trie que les 2 premiers
Je pige pas trop d'ou ca peut venir ...
Message édité par Chronoklazm le 22-10-2005 à 01:21:31
---------------
Scheme is a programmable programming language ! I heard it through the grapevine !