Template et heritage

Résolu
Bonjour,

svp est ce que dans l'heritage si la class de base est declarer comme etant template
template<classT> NOM DE LA CLASS ,est ce que la class dérivé peut utiliser aussi le type génerique de la class de base,c'est a dire est ce que on peut utiliser le mot clé T a la place du type dans la classe dérivé et merci pour votre future réponse :)

1 réponse

  1. Modérateur
    À chaque fois que tu remplaces ton template par un type concret, tu recompiles une nouvelle classe, qui elle même va compiler sa classe mère. Au final tu n'auras que des types concrets. Donc il ne devrait pas y avoir de problème...

    template <typename T>
    class Mere
    {
    }
    
    template <typename T>
    classe Fille : public Mere<T>
    {
    }
    0
    1. alors on peut dire que la class fille hérite les type abstrait ??? et merci pour la réponse
      0
    2. Modérateur
      Il n'est abstrait que dans ton code, une fois la compilation effectuée la classe est concrète, et il n'y a pas plus d'ambiguïté que si tu avais fait plusieurs classes mères et plusieurs classes filles avec seul le type du template qui diffère.
      0
    3. OK merci ,mais si je veux declarer la classe fille comme etant générique mais avec un autre type c'est a dire pas celui de la classe mère je ferait quoi ??
      0
    4. Modérateur
      Tu ferais comme si la classe mère n'était pas template...

      Je ne suis pas sûr de la syntaxe avec deux template mais sur le principe ces deux codes devraient avoir à peu près le même sens pour la classe fille.

      class Mere {}
      
      template <typename T>
      classe Fille : public Mere
      {}
      
      //------------
      
      template <typename U>
      class Mere {}
      
      template <typename T,typename U>
      classe Fille : public Mere<U> {}
      0
    5. Merci bcp de m'avoir aidé , et merci pour votre temps maintenant j'ai bien compris :)
      0