Vector affichage [Résolu]

Messages postés
4
Date d'inscription
mardi 1 février 2005
Dernière intervention
18 novembre 2005
- - Dernière réponse : luhtor
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Dernière intervention
28 juillet 2008
- 18 nov. 2005 à 09:29
Slt tout le monde,



voila j ai un probleme avec ceci :



int main()

{

std::vector x(1);



int choix;



disMenuPrinc();

cin>>choix;

switch ( choix )

{

case 2:

disMenuCl();

int choix2;

cin>>choix2;

switch ( choix2 )

{

case 1:



string n=addNewClientNom();

string pr=addNewClientPrenom();

string a=addNewClientAdresse();

string v=addNewClientVille();

string p=addNewClientPays();

string ab=addNewClientAbon();

if (ab == "oui")

{

int typabon;

couttypabon;

ClientAbonne c(n,pr,a,v,p,typabon);

//tabClient.push_back(&c);

x[0] = &c;

x[0]->afficher();

}

else

{

Client c(n,pr,a,v,p);

//tabClient.push_back(&c);

x[0] = &c;

x[0]->afficher();

}

x[0]->afficher();

break;

}

break;

}

x[0]->afficher();



cout
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Dernière intervention
28 juillet 2008
5
3
Merci
Ben oui, tu as un problème de portée ou de pointeur. Tu créer un objet,
tu ajoutes un pointeur dessus dans ton vector. Apres ton objet est
détruit, et donc le pointeur pointe sur rien du tout. Pour ca que ton
3eme appel plante. Faut etre plus rigoureux avec les pointeurs.


Au lieu de faire ca:

ClientAbonne c(n,pr,a,v,p,typabon);

x[0] = &c;



Au passage, ta méthode pour ajouter des éléments n'est pas terrible. Utilise push_back.

Bon voila ce qu'il faut écrire dans ton cas:



ClientAbonne * c = new ClientAbonne(n,pr,a,v,p,typabon);

x.push_back(c);



Et la ca fonctionnera. Oublie pas de delete tous les éléments du vector à la fin de ton programme

Dire « Merci » 3

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

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

Commenter la réponse de luhtor
Messages postés
4
Date d'inscription
mardi 1 février 2005
Dernière intervention
18 novembre 2005
0
Merci
P.S. J'ai pas oublié de ; ds la fct afficher() c'est une erreur de copier collier.
Commenter la réponse de heleos

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.