Veröffentlicht 27. Oktober 200915 j moin zusammen. ich hätt mal ne frage eine template-klasse betreffend: ich möchte gern eine funktion wie folgt definieren: template <class T> void LIST<LOAN<T> >::insertLoan(...) {...} dabei sind sowohl LIST als auch LOAN eine template-klasse. nun habe ich aber das problem, dass ich nicht weiß wie ich diese funktion in der LIST-klasse (ich bin der meinung, dass diese dort hinein muss) deklariert werden muss. so auf jeden fall nicht: template <class T> class LIST { ... public: void insertLoan(...); } ... ich bin der meinung, dass ich die lösung in den letzten tagen irgendwo schonmal gesehen hab. nur ist diese auch nach stundenlangem googlen nicht wieder auffindbar :old grüße TechnichalError
27. Oktober 200915 j nun habe ich aber das problem, dass ich nicht weiß wie ich diese funktion in der LIST-klasse (ich bin der meinung, dass diese dort hinein muss) deklariert werden muss.Wenn sich diese Methode anders verhalten soll als LIST<T>::insertLoan, brauchst du eine partielle Spezialisierung der LIST-Klasse für LOAN<T>-Templateparameter: template <class T> class LIST<LOAN<T> > { ... public: void insertLoan(...); }[/code] Es riecht aber ein wenig nach kaputtem Design. Eine Containerklasse sollte sich nicht für bestimmte Elementtypen anders verhalten. Du hast leider die Parameter für insertLoan nicht angegeben. Wenn da ein LOAN<T> dabei ist, wäre vielleicht eine einfache Überladung besser als eine Spezialisierung der ganzen Klasse.
28. Oktober 200915 j hm stimmt. denkfehler meinerseits. ich kann dafür natürlich auch die normale insert-funktion der klasse LIST benutzen ... template <class T> void LIST<T>::insertElem(T* pI); danke für den denkanstoß ... ne lösung kann manchmal so trivial sein grüße TError
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.