Salut a tous.
J'essaye desesperement d'hériter d'un template pour faire un autre template, mais la mayonnaise ne prend pas. Toutes les reférences à la classe mère sont notifiées inconues!
Apres recherche sur google et le forum, tout ce que j'ai trouvé à faire, c'est remplacer <class T> par <typename T>...
Un ptit bout de code vaut mieux qu'un long discours alors voila, je m'en remet à votre grande expérience de la prise de tete 1 semaine avant la date limite!!
Code :
- template<typename T>
- class element
- {
- public:
- T val;
- element<T> *suc;
- element(const T &x, element<T> *l)
- };
|
Code :
- template<typename T>
- class Gliste
- {
- protected:
- element<T> * debut;
- public:
- Gliste();
- };
|
Jusque la tout va bien.
Code :
- template<typename T>
- class listeinter:public Gliste<T>
- {
- public:
- listeinter();
- double Taille();
- bool Appartient(const T & x);
- };
- template<typename T>
- double TailleEl(element<T> *p)
- {
- if (p==NULL) return 0;
- else return Taille(p->suc)+1;
- }
- template<typename T>
- listeinter<T>::listeinter()
- {
- Gliste<T>::Gliste();
- }
- template<typename T>
- double listeinter<T>::Taille()
- {
- return TailleEl(debut);
- }
|
Et donc tout ce que je fait dans ma classe listeinter ca foire...
Il ne reconnait ni le constructeur Gliste() ni la propriété debut.
J'ai déja allumé un cierge mais si quelqu'un avait un miracle en stock, je suis preneur.
Ah oui, je compile sous Linux mais ca marchait sous DevCpp...
Merci