Template et heritage

Résolu/Fermé
jihane jihane Messages postés 65 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 11 avril 2012 - 21 nov. 2011 à 00:18
jihane jihane Messages postés 65 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 11 avril 2012 - 21 nov. 2011 à 11:27
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

KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
21 nov. 2011 à 00:41
À 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
jihane jihane Messages postés 65 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 11 avril 2012
21 nov. 2011 à 10:04
alors on peut dire que la class fille hérite les type abstrait ??? et merci pour la réponse
0
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
21 nov. 2011 à 10:18
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
jihane jihane Messages postés 65 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 11 avril 2012
21 nov. 2011 à 11:11
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
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
21 nov. 2011 à 11:18
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
jihane jihane Messages postés 65 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 11 avril 2012
21 nov. 2011 à 11:27
Merci bcp de m'avoir aidé , et merci pour votre temps maintenant j'ai bien compris :)
0