Problème de modification d'un objet

pcmanprogrammeur Messages postés 126 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 16 octobre 2010 - 10 févr. 2007 à 16:24
cs_hibi Messages postés 23 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 20 novembre 2007 - 10 févr. 2007 à 23:18
Bonjour,

Je vais vous mettre le code hyper hyper simplifié de mes classes pour trouver au mieux l'erreur.

Banque.cpp:
#include"Banque.hpp"


Banque::Banque()
{
    tabCompte=new Compte[10];
}

Banque.hpp:
#include "Compte.hpp"
class Banque
{
    public:
    Compte* tabCompte;
    int indexMax;
    Banque();
};

Compte.cpp:
#include"Compte.hpp"


Compte::Compte()
{
}


Compte::Compte(float leSolde)
{
    solde=leSolde;
}

Compte.hpp:
class Compte
{
    public:
    float solde;
    Compte();
    Compte(float);
};

Main.cpp:
#include"Banque.hpp"
#include"stdio.h"
int main()
{
    Banque laBanque;
    Compte leCompte(1212);
    laBanque.tabCompte[0]=leCompte;
    printf("avant ajout : %f\n",laBanque.tabCompte[0].solde);
    laBanque.tabCompte[0].solde=laBanque.tabCompte[0].solde+10;
    printf("après ajout : %f\n",laBanque.tabCompte[0].solde);


}

Voilà !!! Le problème que je rencontre est à la commande  laBanque.tabCompte[0].solde=laBanque.tabCompte[0].solde+10; dans le main.cpp.
En effet, après l'ajout, vous pouvez remarquer que mon solde est toujours le même.

Merci de votre aide pour m'indiquer d'où vient l'erreur !!! Ca doit pourtant pas être compliqué mais je trouve pas : encore une histoire de pointeur je pense ...
A bientôt.
PcManProgrammeur

5 réponses

cs_hibi Messages postés 23 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 20 novembre 2007
10 févr. 2007 à 16:40
j'ai testé le code et j'ai trouvé aucun problème:

voici le résultat :

avant ajout : 1212.000000
aprÞs ajout : 1222.000000

Hibi[?]
0
pcmanprogrammeur Messages postés 126 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 16 octobre 2010
10 févr. 2007 à 17:09
Ah oui t'as raison !!!
J'ai pas l'air d'un ... maintenant :)
Je vais recompliquer mes classes : y'aura bien un moment où je vais rebloquer ...
0
pcmanprogrammeur Messages postés 126 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 16 octobre 2010
10 févr. 2007 à 17:19
Ca y est, faut modifier les fichiers suivants :

Banque.cpp :
#include"Banque.hpp"


Banque::Banque()
{
    tabCompte=new Compte[10];
}


Compte Banque::getCompte(int lIndex)
{
    return tabCompte[lIndex];
}

Banque.hpp :
#include "Compte.hpp"
class Banque
{
    public:
    Compte* tabCompte;
    int indexMax;
    Banque();
    Compte getCompte(int);
};

Main.cpp :
#include"Banque.hpp"
#include"stdio.h"
int main()
{
    Banque laBanque;
    Compte leCompte(1212);
    laBanque.tabCompte[0]=leCompte;
    printf("avant ajout : %f\n",laBanque.tabCompte[0].solde);
    laBanque.getCompte(0).solde=laBanque.getCompte(0).10;
    printf("après ajout : %f\n",laBanque.tabCompte[0].solde);


}

Là ça marche pas ;) !!!

Merci de votre aide !!!
0
pcmanprogrammeur Messages postés 126 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 16 octobre 2010
10 févr. 2007 à 17:21
Encore une erreur :
laBanque.getCompte(0).solde=laBanque.getCompte(0).10;
est
laBanque.getCompte(0).solde=laBanque.getCompte(0).solde+10;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_hibi Messages postés 23 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 20 novembre 2007
10 févr. 2007 à 23:18
laBanque.getCompte(0).solde=laBanque.getCompte(0).10;
ça c'est pas de c++.

après le poit il y a tjrs un membres de classou de structure.
la bonne écriture est :
laBanque.getCompte(0).solde=laBanque.getCompte(0).solde+10;

Hibi[?]
0
Rejoignez-nous