Tableaux bugés dans les classes ?

Résolu/Fermé
GhostUser Messages postés 166 Date d'inscription lundi 26 juillet 2010 Statut Membre Dernière intervention 28 janvier 2015 - Modifié par GhostUser le 11/08/2013 à 23:01
GhostUser Messages postés 166 Date d'inscription lundi 26 juillet 2010 Statut Membre Dernière intervention 28 janvier 2015 - 12 août 2013 à 13:17
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

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
12 août 2013 à 10:46
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
GhostUser Messages postés 166 Date d'inscription lundi 26 juillet 2010 Statut Membre Dernière intervention 28 janvier 2015 10
12 août 2013 à 13:17
D'accord ! Voilà pourquoi le seul moyen d'afficher que des 7 était d'incrémenter le tableau ! Et bien merci beaucoup !
0