9sber
Messages postés28Date d'inscriptionvendredi 30 avril 2004StatutMembreDernière intervention14 septembre 2004
-
11 mai 2004 à 10:23
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
11 mai 2004 à 20:50
Salut tout le monde
J'ai longtemps cherché sur le forum des infos sur mon pb avant d'envoyer un p'tit msg mais voilà:
J'essaie de créer un vecteur d'objet Table de cette mannière:
et ma réponse est :
no matching function for call to `vector<Table,allocator<Table> >::push_back (Table *&)'
/usr/include/g++/stl_vector.h:319: candidates are: void vector<Table,allocator<Table> >::push_back(const Table &)
Je comprends bien que c'est un pb de passage par référence/pointeur mais je n'arrive à la résoudre.
Pouvez-vous m'aider SVP
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 11 mai 2004 à 11:36
tu crée un vecteur de Table et tu veux ajouter un Table*, ca ne peut pas coller!
soit tu fais tout avec des pointeurs, soit tout avec des objets normaux:
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 11 mai 2004 à 12:24
oui en effet c'est du c++.
Un vecteur est un conteneur qui fait partie de la STL. C'est un modèle, cela signifie qu'il permet de stocker des objets du type que l'on veut (celui qui est entre <>). Le principal interet est qu'on n'est pas obligé de connaitre le nombre d'élément maximal quand on le crée, ce qui le rend plus simple d'utilisation qu'un tableau dans certains cas.
Pour en savoir plus sur les conteneurs tu peux visiter cette page:
http://casteyde.christian.free.fr/cpp/cours/online/c8379.html
9sber
Messages postés28Date d'inscriptionvendredi 30 avril 2004StatutMembreDernière intervention14 septembre 2004 11 mai 2004 à 17:09
Et oui, la solution était évidente. Merci
Cependant, peux-tu me préciser le comportement d'un vecteur<objet*> au niveau de la copie (objet complet/adresse) car dans ma fonction en fait, c'est un peu comme ça:
9sber
Messages postés28Date d'inscriptionvendredi 30 avril 2004StatutMembreDernière intervention14 septembre 2004 11 mai 2004 à 20:43
Réponse à djl, en faite, la lourdeur de mon objet est telle que la petite étoile est appréciable. De plus, mon objet contient lui aussi un vecteur d'objets un peu lourd et de tailles et types différents (héritants de classes abstraites).
Donc voilà pkoi mon choix c'est porté sur l'*.
Néanmoins, si tu as une contre-proposition à me faire avec justification, je suis à ton écoute (en tant que novice C++).