Tableaux bugés dans les classes ?

[Résolu/Fermé]
Signaler
Messages postés
166
Date d'inscription
lundi 26 juillet 2010
Statut
Membre
Dernière intervention
28 janvier 2015
-
Messages postés
166
Date d'inscription
lundi 26 juillet 2010
Statut
Membre
Dernière intervention
28 janvier 2015
-
Bonjour,

Je suis débutant en C++, et j'ai vraiment de faire un certain programme.
Dans celui-ci j'imbrique des classes ayant pour attributs des tableaux d'objet, j'y ai rencontré un problème que je n'arrive pas à résoudre. J'ai donc crée un petit programme Test afin de voir ce qui se passe mal mais sans succès, je vous copie ce meme programme test ici:





#include <iostream>

using namespace std;

class Objet1
{
public:
Objet1()
{
int i=0;
while(i<=5)
{
Valeurs[i]=7;
i++;
}

}
int Get_Valeurs(int i)
{
return Valeurs[i];
}

private:
int Valeurs[5];

};


class Objet2
{
public:
Objet2()
{

}
Objet1 Get_Objet()
{
return Objet;
}



private:
Objet1 Objet;

};




int main()
{
Objet2 m_Objet;

int i=0;
while(i<=5)
{
cout<<m_Objet.Get_Objet().Get_Valeurs(i)<<endl;
i++;
}

return 0;
}




Et voici ce que le programme affiche

"
7
7
7
7
7
5
"

Je voudrai qu'il affiche 7 partout ... on dirait que le contructeur n'a pas fonctionné pour la dernière case du tableau !

J'ai essayé d'acceder à la 6ème par un pointeur, mais le programme "cesse de fonctionner"

J'ai peut être commis une erreur toute bête mais s'il vous plait aidez moi cette erreur me rend légèrement dingue.

Merci d'avance !

2 réponses

Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 308
une grosse erreur déjà, "int valeur[5]" défini un tableau de 5 cases, donc allant de 0 à 4 et non pas 5. Ce qui fait que tes while vont à chaque fois une case trop loin.
valeur[5] n'existant pas, il n'est pas étonnant que ça renvoie n'importe quoi.
1
Merci

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

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
166
Date d'inscription
lundi 26 juillet 2010
Statut
Membre
Dernière intervention
28 janvier 2015
10
D'accord ! Voilà pourquoi le seul moyen d'afficher que des 7 était d'incrémenter le tableau ! Et bien merci beaucoup !