[C++ Vecteur qui se re-initialise]

Signaler
Messages postés
5
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
11 juin 2004
-
Messages postés
85
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
18 septembre 2005
-
Bonjours,

- j'ai un problème avec un pti projet pour une épreuve, j'ai une classe (Atelier) contentent un tableau de vecteur de type Roues4.
Cette class Roues4 est un class enfant d'une classe vehicule qui contient un vecteur d'entretient.

- j'arrive a utiliser le vecteur de Roues4 mais mon problème est que le vecteur de d'Entretien disparaît car mon véhicule meurt , je pers donc ces les valeur du vecteur d’entretien.

J'ai cherché et apres leur insertion ds le vecteur de roues4 mon objet roues4 appel son destructeur sans que je lui les demandé !!!! 8O

Le diagrame de class:


- n'etant pas expert en c++ je demande un pti coup de main pour trouver l'origine de cette erreur.

voici le bout de code de declaration des class:


class Atelier
{
private :
        vector < Roues4 > VehiculeR4;
        vector < Roues2 > VehiculeR2;
        vector < EntretienType > TabEntretienType;

protected :

public:
    Atelier();
    ~Atelier();
     };


class Vehicule
{
protected:
    	string numImma;
                int nbKmActuel;
                vector <Entretien> TabEntretien;

public :
Vehicule();
                Vehicule(string _numImma, int _nbKmActuel);
~Vehicule();
int GetNbKmActuel();
                int GetNbEntretiens();
                Entretien GetEntretien(int index);
                void AddEntretien(string unDate, string unCommentaire,  EntretienType unType);
                void AffEntretient();
};


mon probleme c'est que comme l'objet Roues4 meurt je perd le tableaux stockés(vecteur).
Je doit utiliser des pointeurs ?(simple question pour avancer)

Si vous souhaiter le code je le met en ligne.
Merci d'avance de m'aider

1 réponse

Messages postés
85
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
18 septembre 2005

Salut,

Si l'entretien se perd à la sortie de la fonction addEntretien, c'est à mon avis (mais je n'ai pas analysé à fond ton code) parce que tu passes l'objet EntretienType par valeur. il est donc détruit à la sortie. Tu devrais essayer de le passer par référence :

void AddEntretien(string unDate, string unCommentaire, EntretienType &unType);

je pense qu'il y a de bonnes chances que ça provienne de là.

a+
alain