T.Error Geschrieben 27. Oktober 2009 Geschrieben 27. Oktober 2009 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
Klotzkopp Geschrieben 27. Oktober 2009 Geschrieben 27. Oktober 2009 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.
T.Error Geschrieben 28. Oktober 2009 Autor Geschrieben 28. Oktober 2009 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden