Affichage d'une variable

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
Configuration: Windows XP
Firefox 3.0.10

3 réponses

  1. 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
    1. 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
      1. En enlevant les pointeurs, il m'affiche
        Adresses (michel)
        Adresse : -1 rue du . Code postal : 2009095316.
        0