IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

variable d'une classe alteré dans main()


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut variable d'une classe alteré dans main()
    Bonjour,

    Je suis en train de réaliser un prog en C++ pour effectuer des calcul sur des adresse Ipv4. J'ai donc créer 2 classes : IP et Octet.
    Mais lors de la conversion des adresse en octet la variable qui contient le 1er bit change de valeur et je comprend pas pourquoi !

    Pour le code source via Pastbin :
    main.cpp
    octet.cpp
    octet.h
    ip.cpp
    ip.h

    Dans la fonction ToBits(int oct) dans le main.cpp la variable oct n'est pas la bonne et je ne comprend pas pourquoi ?

    Donc voila et merci de vos suggestion

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Une suggestion de méthodologie (je n'ai pas lu ton code) :
    - Lance ton code avec un debugger
    - Regarde l'adresse mémoire de la variable qui est modifiée à tort
    - Mets un breakpoint à chaque fois que quelqu'un modifie cette adresse
    - Continue l'exécution de ton code

    Normalement, ainsi, tu devrais avoir plus d'informations sur quel bout de code exactement modifie cette variable, et probablement des idées sur la cause du problème.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    IP::IP(Octet a1, Octet a2, Octet a3, Octet a4)
    {
        Octet partie1, partie2, partie3, partie4;
     
        partie1 = a1;
        partie2 = a2;
        partie3 = a3;
        partie4 = a4;
    }
    Ici, tu initialises mes variables locales du constructeur, pas les membres de la classe.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut
    Effectivement je me suis gourer avec les variable merci bcp

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    la bonne syntaxe serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IP::IP(Octet a1, Octet a2, Octet a3, Octet a4)
    : partie1(a1), partie2(a2), partie3(a3), partie4(a4)
    {}
    Tu utilisera ainsi les constructeurs spécifiques de chaque partie, plutot que les constructeurs par défaut puis l'affectation, qui n'est pas forcément définie...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation d'une classe le dans main()
    Par soub dans le forum Débuter
    Réponses: 2
    Dernier message: 21/05/2014, 12h55
  2. Réponses: 6
    Dernier message: 16/10/2013, 21h57
  3. Réponses: 3
    Dernier message: 20/11/2009, 19h51
  4. Réponses: 6
    Dernier message: 21/07/2009, 11h37
  5. Réponses: 2
    Dernier message: 15/06/2006, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo