Affichage d'une variable

Fiskal Messages postés 27 Statut Membre -  
Fiskal Messages postés 27 Statut Membre -
Bonjour,
j'ai crée un petit programme pour voir si j'avais compris les classes. J'ai eu quelques erreurs que j'ai corrigées. L'essai est comme un petit carnet d'adresse. On affiche le contenu avec XXX.afficher(); et on le modifie après avec XXX.modifier();.

Tout ça marche. Le problème, c'est lors de l'affichage : au lieu de m'écrire
Adresses (michel)
Adresse : 0xffffffff rue du 0x77be2850. Code postal : 2009095316.

Au lieu d'écrire :
Adresses (michel)
Adresse : 44 rue du maitre. Code postal : 67117.
De même pour les autres.

Que faire ?

Voici mes codes :

main.cpp :
#include <iostream>
#include "infos.h"

using namespace std;

int main()
{
    infos michel("maitre", 44);
    infos tutur("lilas", 9);
    infos paul("lilas", 30);
    cout << "Adresses (michel)" << endl;
    michel.afficher();
    cout << "Changement : "<< endl;
    michel.changer();
    cout << "Nouvelles Adresses"<< endl;
    michel.afficher();
    system("PAUSE");
    system("cls");
    cout << "Adresses (Arthur)" << endl;
    tutur.afficher();
    cout << "Changement : "<< endl;
    tutur.changer();
    cout << "Nouvelles Adresses"<< endl;
    tutur.afficher();
    system("PAUSE");
    system("cls");
    cout << "Adresses (paul)" << endl;
    paul.afficher();
    cout << "Changement : "<< endl;
    paul.changer();
    cout << "Nouvelles Adresses"<< endl;
    paul.afficher();
    system("PAUSE");
    return 0;
}


infos.cpp
#include <iostream>
#include "infos.h"
#include <string>

using namespace std;

infos::infos() : m_codepostal(67117)
{

}

infos::infos(std::string m_rue, int m_numeroBatiment)
{


}

infos::~infos()
{



}

void infos::afficher()
{
    cout << "Adresse : " << m_numeroBatiment << " rue du " << m_rue << ". Code postal : " << m_codepostal << "." << endl;
}

void infos::changer()
{
    cout << "Changement de rue, entrez le nouveau nom : " << endl;
    cin >> *m_rue;
    cout << "Changement du numéro du bâtiment, entrez le nouveau numéro : " << endl;
    cin >> *m_numeroBatiment;
}


infos.h
#ifndef DEF_INFOS
#define DEF_INFOS

class infos
{
    public:
    infos();
    infos(std::string m_rue, int m_numeroBatiment);
    ~infos();
    void afficher();
    void changer();

    private:
    int m_codepostal;
    std::string *m_rue;
    int *m_numeroBatiment;
};
#endif


Je travaille avec Code::Blocks 8.02 avec le compilateur GNU GCC.
Je suis sous Win XP

Merci d'avance

Fiskal

3 réponses

Utilisateur anonyme
 
Salut

J'ai juste lu en travers.

Adresse : 0xffffffff rue du 0x77be2850. Code postal : 2009095316.

= ton pointeur pointe l'adresse, or tu dois retourner sa valeur :)

ex :

long test = 10;
long *pointeur = &test;

printf("%ld", pointeur); ==> affiche l'adresse
printf("%ld", *pointeur); ==> affiche 10
0
Fiskal Messages postés 27 Statut Membre
 
Merci pour ta réponse si rapide, mais il n'y a qu'un problème, l'ex que tu me donnes, c'est du C, mon code, c'est du C++.
0
Fiskal Messages postés 27 Statut Membre
 
En enlevant les pointeurs, il m'affiche
Adresses (michel)
Adresse : -1 rue du . Code postal : 2009095316.
0