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

Langage C++ Discussion :

Polymorphisme, templates et heritages


Sujet :

Langage C++

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Polymorphisme, templates et heritages
    Bonjour bonjour !

    J'utilise une bibliotheque basee sur les templates (ITK) pour faire du traitement d'images. Grace a elle, en changeant uniquement le type du pixel, et la dimension de l'image, je peux effectuer le exactement le meme traitement sur une image jpg ou sur une autre en 3D.
    Probleme : Les templates m'obligent a recompiler a chaque fois que je change de format d'image.

    Pour resoudre ca, je voulais utiliser le polymorphisme et de l'heritage pour "cacher" l'etape template. J'ai donc essaye ce bout de code pour faire un test mais... ca foire !

    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
    #include <iostream>
    #include <cstdlib>
    using namespace std;
     
    // Classe de base
    class A
    {
      public :
        A() : m_a(0){} ;
        virtual ~A() ;
        virtual void getA() = 0 ;
      protected :
        int m_a ;
    } ;
     
    // Classe template parametree
    template < int number >
    class B : public A
    {
      public :
        B() : m_a( number ) {} ;
        virtual void getA(){ cout << m_a << endl ; } ;
    } ;
     
    // Classes "specialisees"
    class C : public B<2> {} ;
    class D : public B<3> {} ;
     
    // Affiche l'attribut herite de A
    void showAttribute( A* a ) { a->getA(); } ;
     
    /******************************************************************/
    int main(int argc, char* argv[])
    {
      A *myClass ;  
      if( atoi(argv[1]) == 0 )
      {
        myClass = new C() ;
      }
      else
      {
        myClass = new D() ; 
      }  
      showAttribute( myClass ) ;
      delete myClass ;
      return 0 ;
    }
    Je suis encore un debutant en C++ (a peine 2 mois d'experience) et j'avoue caler sec sur ce probleme. Quelqu'un a une idee pour s'y prendre correctement ?

  2. #2
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Un peu dans ce genre ?

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    C'est exactement ca ! J'te remercie beaucoup !

    A++

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

Discussions similaires

  1. template et heritage de l'operateur =
    Par yan dans le forum Langage
    Réponses: 2
    Dernier message: 25/02/2011, 09h22
  2. Restreindre le paramètre d'un Template via Heritage
    Par SamAgace dans le forum Langage
    Réponses: 10
    Dernier message: 03/11/2010, 11h43
  3. Template et heritage
    Par Ange_blond dans le forum Langage
    Réponses: 8
    Dernier message: 04/05/2009, 15h28
  4. template et heritage
    Par deadalnix dans le forum Langage
    Réponses: 13
    Dernier message: 14/08/2008, 11h34
  5. Template et polymorphisme
    Par Pierre_IPROS dans le forum Langage
    Réponses: 19
    Dernier message: 09/10/2005, 23h04

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