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 :

Polymorphisme des classes


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Par défaut Polymorphisme des classes
    Bonjour,

    J'ai la classe suivant et j'ai un résultat bizzare mais peut être normale en 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
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    class Test1
    {
        public:
            Test1();
            ~Test1();
            void test();
    }
     
    class Test2 : public Test1
    {
        public:
            Test1();
            ~Test2();
            void test();
    }
     
    Test1::Test1()
    {
        std::cout << "Constructeur 1 " << std::endl ;
    }
     
    Test2::Test2()
    {
        std::cout << "Constructeur 2" << std::endl ;
    }
     
    Test1::~Test1()
    {
        std::cout << "Destructeur 1" << std::endl ;
    }
     
    Test2::~Test2()
    {
        std::cout << "Destructeur 2" << std::endl ;
    }
     
    void Test1::~test()
    {
        std::cout << "test 1" << std::endl ;
    }
     
    void Test2::~test()
    {
        std::cout << "test 2" << std::endl ;
    }
     
    int maint()
    {
        Test1 *test1 = new Test1();
        Test1 *test2 = new Test2();
     
        test1->test();
        test2->test(); // ICI
     
        delete test1 ;
        delete test2 ;
     
        return 0 ;
     
    }
    Au niveau de ICI. Je m'attendais à voir la méthodes ( test de Test2 ) être appelé mais en faite non. Je sais que dans des langages comme JAVA ce code passe.


    Merci de votre aide.

  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
    Par défaut
    test() doit être déclarée virtuelle pour pouvoir être redéfinie par les classes dérivées.
    De plus, le destructeur de Test1 doit également l'être sinon le destructeur de Test2 ne sera jamais appelé dans ton exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class Test1
    {
        public:
            Test1();
            virtual ~Test1();
            virtual void test();
    }
    Le C++ ça ne s'invente pas, même si tu connais déjà Java. Lis plutôt un petit cours / tuto pour te mettre à jour.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Par défaut
    J'ai déjà un livre sur Qt dans lequel il parle un peu du passage Java --> Cpp.
    Mais oui je vais lire un petit livre je pense. Car là je passe à coté de plein de chose.

    merci

Discussions similaires

  1. Diagramme des classes pour l'interface visuel
    Par robv dans le forum Diagrammes de Classes
    Réponses: 2
    Dernier message: 25/06/2004, 10h50
  2. [debutant] Comment ajouter des .class ?
    Par Slein dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 30/04/2004, 14h30
  3. Créer les get et set des classes
    Par cameleon2002 dans le forum JBuilder
    Réponses: 3
    Dernier message: 17/09/2003, 21h03
  4. specifier les chemins des .class
    Par draken dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 29/07/2003, 09h35
  5. Inserer des classes java existantes
    Par 2000 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 20/03/2003, 12h35

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