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 :

Definition d'une classe dérivée d'un template


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 114
    Par défaut Definition d'une classe dérivée d'un template
    Bonjour,
    Ma question est toute simple et donc sera la réponse j'espère.
    Je voudrais savoir la syntaxe de définition d'une classe dérivée d'une classe parente ayant un template.
    Par exemple, voici comment la classe de base est définie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      template<class T>
    class MaClasse: public ClasseDeBase, public T
    {
     
    }
    La question est de savoir comment définir une classe dérivée.

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Par défaut
    voici deux exemple, je crois que c'est comme ca la syntaxe de mémoire

    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
    template<int a>
    class mere{
    ...
    }
     
    class fille : public mere<16>
    {
    ...}
     
     
     
    template <class T>
    class mere{
    ...
    }
     
     
    class fille: public mere<int>
    {
    ...
    }

  3. #3
    Membre averti
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Par défaut
    Euh j'ai pas tout comprit, j'espère que ma reponse t'aidera.
    Voici un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class Mere {
    };
     
    template <class T>
    class Fille : public T {
    };
     
    int main() {
        Fille<Mere> obj;
     
        return EXIT_SUCCESS;
    }

  4. #4
    Alp
    Alp est déconnecté
    Expert confirmé

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    A moins qu'il ne s'agisse comme le dit loicounet de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    template <class T>
    class Mere
    {
    // ...
    }
     
    template <class T>
    class Fille : public Mere<T>
    {
    // ...
    }

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2008
    Messages : 22
    Par défaut
    Je pense que sa question est plutot "Peut-on faire hériter une classes d'un template ?"

    Personnelement, je n'ai pas essayé et je ne peux pas la ou je suis...

    Ceci dit, ca doit poser pas mal de problème...

    Sinon, la solution proposé par Alp et Loicounet doit bien te faire le résultat que tu veux (en déviant un peu) non ?

    Apo`

  6. #6
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Par défaut
    Je pense que sa question est plutot "Peut-on faire hériter une classes d'un template ?"
    Oui, je l'ai déjà fait donc c'est possible.

  7. #7
    Alp
    Alp est déconnecté
    Expert confirmé

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Ca ne pose aucun problème.

    Soit Mere<T> une classe template.

    On peut en hériter de 2 façons :
    - soit on fixe le type T : class Fille : public Mere<int>
    - soit la classe fille sera elle-même template : template <typename T> class Fille : public Mere<T>

    Et ça ne pose aucun problème. Il ne faut pas voir du mal dans les templates, bien au contraire

  8. #8
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2008
    Messages : 22
    Par défaut
    Hmmm, visiblement j'ai autant mal formulé que franc82

    Il veut pas faire (enfin je pense....) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    template <typename T>
    class Fille : public Mere<T>
    Il veut faire (enfin je pense toujours...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    template <class Mere>
    class Fille : public Mere
    Ch'ui curieux de savoir si c'est possible

    Ceci dit, la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    class Fille : public Mere<T>
    Fonctionne a merveille et revient au meme je pense (enfin, de l'utilité que j'en voie...)

    Apo`

Discussions similaires

  1. Definition d'une classe python dans plusieurs fichiers
    Par wfargo dans le forum Général Python
    Réponses: 3
    Dernier message: 05/12/2006, 23h03
  2. problème d'accès dans une classe dérivée!
    Par chrono23 dans le forum C++
    Réponses: 47
    Dernier message: 10/10/2006, 11h22
  3. Réponses: 2
    Dernier message: 06/12/2005, 09h41
  4. Réponses: 4
    Dernier message: 20/11/2005, 05h48
  5. Déterminer le type d'une class dérivée
    Par LDDL dans le forum MFC
    Réponses: 3
    Dernier message: 10/12/2004, 17h36

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