En fait je savais pas trop quoi mettre comme titre pour pas copier :p
Bon je vous explique mon probleme (j'ai pas le source de ce probleme sous la main mais j'ai le probleme en tete alors regarde pas les fautes de codages a cote)
J'ai une classe que l'on va appeler maClasse qui possede trois invariants, un int, un char* et un objet d'une troisieme classe (maClasse3)
J'ai une autre classe que l'on va appeler maClasse2 qui est un tableau d'objet de type maClasse. Vous me suivez ?
Dans ma classe de test j'ai fait un truc comme ca :
....
char command;
maClasse *maClasse2 = new maClasse();
maClasse *maClasse;
while (command != 'q')
{
....
switch case 'a': (pour ajouter un element)
{
char unChar[30] //le probleme vient de la
int unInt;
cin >> unChar;
...
cin >> unInt;
maClasse=new maClasse(unChar, unInt);
maClasse2->add(*maClasse);
break;
}
switch case 'v':
{
maClasse2->view(); //donc pour afficher;
break;
}
}
Donc si je rajoute un objet de type maClassw, tout se passe normalement (via l'affichage)
Et si je rajoute ensuite un objet (dans la boucle while) il me rajoute effectivement le deuxieme objet, seulement je me rend compte que le char* invariant de l'objet repointe sur la meme chaine.
Donc en fait je me retrouve avec pour les deux objets du tableau avec un char possedant la meme adresse je suppose. Donc faudrait faire une copie du char* je suppose. Comment ?
Donc c un probleme de pointeur. Si quelqu'un a eu le courage d'essayer de comprendre et peut m'aider ... merci.