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 :

Problèmes d'appels de méthodes


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 179
    Points : 50
    Points
    50
    Par défaut Problèmes d'appels de méthodes
    Hello,

    j'ai écrit une classe Vacances (je ne met pas tout le code car trop long) :


    Je ne comprends pas pourquoi car j'ai bien pris soin de mettre les adresses dans le constructeur de Vacances.

    Est-ce que quelqu'un pourrait m'indiquer ce que je dois faire pour que mon code fonctionne dans le main.

    Merci

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Essaye de remplacer tes "\n" par des std::endl pour forcer l'affichage.

  3. #3
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut Re:
    Tes classes sont très mal construites, je me demande même comment se fait-il que ca se compile. Ta classe Vacances dérive donc si j'ai vraiment compris des classes Plage et Glacier? On doit donc avoir quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Vacances::Vacances(int argument_de_Plage, int argument_de_Glacier):
    Plage(argument_de_Plage), Glacier(int argument_de_Glacier)
    {
        return; //ou rien
    }
    Mais dans ton cas, même si je ne sais pas vraiment ce que t'as réellement envi de faire, je crois que Vacances ne doit pas dériver de Plage et Glacier. On doit seulement avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class Plage;
    class Glacier;
     
    class Vacances
    {
    protected:
        Plage& plage;
        Glacier& glacier1;
        Glacier& glacier2;
    public:
        Vacances(Plage& plage, Glacier& glacier1, Glacier& glacier2);
    };
    Et ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vacances::~Vacances(){}
    C'est inutile.

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tes classes sont très mal construites, je me demande même comment se fait-il que ca se compile. Ta classe Vacances dérive donc si j'ai vraiment compris des classes Plage et Glacier?
    Non, d'après ses sujets précédents, plage, glacier1 et glacier2 sont des variables membres de Vacances.

    Et ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vacances::~Vacances(){}
    C'est inutile.
    Pas s'il est virtuel, ce qui semble probable vu qu'on est en plein dans une hiérarchie de classes.

  5. #5
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par Laurent Gomila
    Citation Envoyé par Melem
    Et ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vacances::~Vacances(){}
    C'est inutile.
    Pas s'il est virtuel, ce qui semble probable vu qu'on est en plein dans une hiérarchie de classes.
    Bien sur, un déstructeur d'une classe est la plupart du temps une fonction virtuelle mais dans ce cas il doit explicitement appeler le déstructeur de la classe de laquelle elle dérive.

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Citation Envoyé par Melem
    Bien sur, un déstructeur d'une classe est la plupart du temps une fonction virtuelle mais dans ce cas il doit explicitement appeler le déstructeur de la classe de laquelle elle dérive.
    Absolument pas

  7. #7
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Cooooo...ool!!!

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Ca marche, mais il faut savoir pourquoi.

    En gardant dans ta classe des références vers des plages et glaciers externes, ce sont bien ceux que tu vas passer au constructeur qui seront modifiés par lancement_simulation(). Ce que tu faisais avant, c'était stocker des copies de ces paramètres, et donc les modifications engendrées par lancement_simulation() n'avaient aucune incidence sur les plages et glaciers originaux.

    Après il faut voir si c'est réellement le comportement souhaité.

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

Discussions similaires

  1. Qt - Problème d'appel de méthode statique
    Par Sylra dans le forum C++
    Réponses: 2
    Dernier message: 14/02/2011, 18h38
  2. Problème d'appel de méthode d'objets COM
    Par tibobao dans le forum C#
    Réponses: 0
    Dernier message: 03/08/2010, 17h35
  3. Problème d'appel des méthodes OpenGL
    Par choko83 dans le forum OpenGL
    Réponses: 5
    Dernier message: 24/04/2008, 10h02
  4. Héritage : problème d'appel de méthodes
    Par parano dans le forum C++
    Réponses: 15
    Dernier message: 02/03/2007, 14h42
  5. Problème pour appeler une méthode d'une autre classe
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 7
    Dernier message: 03/03/2006, 13h33

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