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ème d' héritage


Sujet :

C++

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Problème d' héritage
    Bonjour,

    Je crois avoir ce qui peut être un problème d'héritage. Je fais un programme de traitement d'images en ligne de commande. J'ai entre autre une classe Inversion qui hérite de la classe Command. J'ai prototypé une méthode run() en virtual dans Command pour que quand on la lance ce soit plutot la méthode redéfinie dans Inversion qui soit appelé. Cependant, à l'éxécution c'est la méthode run() de la classe mère qui est appelé à la place. D'où vient l'erreur ?

    Voici mes deux .h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    #ifndef COMMAND_H
     
    #define COMMAND_H
     
     
     
    #include <string>
     
    #include <vector>
     
    #include <iostream>
     
     
     
    using namespace std;
     
     
     
    class Command
     
    {
     
        public:
     
            Command();
     
            virtual ~Command();
     
            virtual void run();
     
        protected:
     
        private:
     
    };
     
     
     
    #endif // COMMAND_H
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    #ifndef INVERSION_H
     
    #define INVERSION_H
     
     
    #include "Command.h"
     
    using namespace std;
     
     
     
    class Inversion : public Command
     
    {
     
        public:
     
            Inversion();
     
            virtual ~Inversion();
     
            void run();
     
        protected:
     
        private:
     
    };
     
     
     
    #endif // INVERSION_H
    et leur .cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include "Command.h"
     
     
     
    Command::Command(){}
     
     
     
    Command::~Command(){}
     
    void Command::run(){
    cout<< "classe mere" << endl;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include "Inversion.h"
     
    Inversion::Inversion(){
    	Command();
    }
     
    Inversion::~Inversion(){}
     
    void Inversion::run(){
    	cout<< "classe fille" << endl;
    }
    Merci d'avance !

    EDIT: J'ai essayé de garder que le strict nécéssaire dans le code.
    Dernière modification par Invité ; 07/12/2012 à 19h49. Motif: Simplification

Discussions similaires

  1. [C#] Problème d'héritage, aide svp :(
    Par choas dans le forum Windows Forms
    Réponses: 12
    Dernier message: 06/05/2006, 11h46
  2. problème constructeur + héritage
    Par BOLARD dans le forum C++
    Réponses: 10
    Dernier message: 13/04/2006, 08h11
  3. [AS2] Problème d'héritage
    Par wwave dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 27/01/2006, 09h26
  4. Problème d'héritage ?
    Par Romanops dans le forum WinDev
    Réponses: 2
    Dernier message: 16/11/2005, 17h18
  5. Problème d'héritage d'une méthode protégée
    Par shenron666 dans le forum C++
    Réponses: 9
    Dernier message: 28/04/2005, 23h17

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