Ajouter un Objet à un vecteur. [Résolu]

Messages postés
12
Date d'inscription
vendredi 30 novembre 2007
Dernière intervention
4 mars 2008
- - Dernière réponse : Rom1PL
Messages postés
12
Date d'inscription
vendredi 30 novembre 2007
Dernière intervention
4 mars 2008
- 29 févr. 2008 à 10:01
Bonjour,
Je débute en POO et plus particulièrement en C++.
Voici en fait mon problème :
      J'ai une classe ProductList qui a pour seul attribut une vecteur de Produits.
     
Ma classe Produit (class Product) est une classe abtraite avec deux
classes qui en héritent : FoodProduct et TechnicalProduct.
      Donc mon vecteur de Produits contient à la fois des FoodProducts et des TechnicalProducts.
 
Dans
une des fonctions de ma classe ProductList je cré des objets pour les
ajouter un à un à mon vecteur de Produits mais le compilo me donne
cette erreur :
 " 'addElement' is not a member of 'vector >' "

Voici mon code :

//Déclaration de tous les attributs de Product
...
//
if ...//test si l'objet est un FoodProduct ou un TechnicalProduct
{
    //déclaration des attributs supplémentaires de FoodProduct
    ...
    //
    FoodProduct temp;
    temp.SetAttributes(// tous mes attributs passés en paramètre);
    Products.addElement(temp); //Products est mon vecteur de Produit, c'est le seul attribut de ProductList.
}
else
{
    //déclaration des attributs supplémentaires de TechnicalProduct
    ...
    //
    TechnicalProduct temp;
    temp.SetAttributes(// tous mes attributs passés en paramètre);
    Products.addElement(temp);
}

Est-ce que quelqu'un voit une solution ?
N'hésitez pas à faire signe si j'ai omis de donner certains éléments.
Merci d'avance.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Dernière intervention
30 août 2012
18
3
Merci
Pour ajouter un élement a un vector ce n'est paspush_back ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 88 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_laurent1024
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Dernière intervention
28 juillet 2008
5
3
Merci
Stokes des pointeurs dans ton objet, pas les objets eux meme. Un vector stocke des objets dont il connait la taille et uniquement ! donc évidemment, pour stocker des objets par leur classe mère, il faut passer par des pointeurs qui ont toujours une taille fixe.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 88 internautes nous ont dit merci ce mois-ci

Commenter la réponse de luhtor
Messages postés
12
Date d'inscription
vendredi 30 novembre 2007
Dernière intervention
4 mars 2008
0
Merci
Merci Laurent, la fonction push_back(MonObjet) a résolu mes soucis.
Well done ;)
Commenter la réponse de Rom1PL
Messages postés
12
Date d'inscription
vendredi 30 novembre 2007
Dernière intervention
4 mars 2008
0
Merci
Je reviens à la charge en posant une autre question.
Est-il possible de déclarer et utiliser un vecteur d'objets abstraits ?
Car toujours avec les 4 classes de mon premiers message (ProductList, Product, FoodProduct et TechnicalProduct), mon compilateur me dit "Cannot create instance of abstract class 'Product' " à la compilation de la classe ProductList.

Pour rappel j'ai une classe ProductList qui est constitué du seul élément Products qui est un vecteur de Product (vector Products;).
Ensuite ma classe Product est une classe abstraite (avec 2 méthodes virtuelles pure).
Enfin les deux classes héritants de Product sont FoodProduct et TechnicalProduct.

Merci beaucoup d'avance pour votre aide.
Commenter la réponse de Rom1PL
Messages postés
12
Date d'inscription
vendredi 30 novembre 2007
Dernière intervention
4 mars 2008
0
Merci
Merci luhtor.
Commenter la réponse de Rom1PL

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.