Hallo.
Nehmen wir mal an, es gibt eine Oberklasse der mit Templates umgeht. Im Grunde ist es auch egal was diese Klasse macht, geht nur darum, dass dort Templates sind.
Ich erbe jetzt von diese Klasse. Dann baue ich noch eine Funktion ein "machwas" und gut ist. Das müsste dann doch so aussehen oder? Zumindest die .h Datei:
Dann habe ich noch natürlich noch .cpp Datei, das sieht dann etwas so aus:
Jetzt kommt die Meckerei in der .cpp Datei:
Okey dann versuche ich es mal mit:
So ist ruhe. Aber ich muss über alle Funktionen "template<typename T>" schreiben, sonst geht es nicht. Ich glaube ich mache etwas gewaltig falsch oder? Ist der Fehler schon sogar in der .h Datei? Macht man das so nicht?
Danke und Gruß
Nehmen wir mal an, es gibt eine Oberklasse der mit Templates umgeht. Im Grunde ist es auch egal was diese Klasse macht, geht nur darum, dass dort Templates sind.
Ich erbe jetzt von diese Klasse. Dann baue ich noch eine Funktion ein "machwas" und gut ist. Das müsste dann doch so aussehen oder? Zumindest die .h Datei:
PHP:
template <typename T>
class Unterklasse : public Oberklasse<T> {
public:
Unterklasse() {}; //konstruktor
virtual ~Unterklasse() {}; //destruktor
void machwas();
void machnochetwas();
};
Dann habe ich noch natürlich noch .cpp Datei, das sieht dann etwas so aus:
PHP:
#include "Unterklasse.h"
void Unterklasse<T>::machwas() {
//...
}
void Unterklasse<T>::machnochetwas() {
//...
}
Jetzt kommt die Meckerei in der .cpp Datei:
Description Resource Path Location Type
‘template<class T> class Unterklasse’ used without template parameters
Okey dann versuche ich es mal mit:
PHP:
#include "Unterklasse.h"
template<typename T>
void Unterklasse<T>::machwas() {
//...
}
template<typename T>
void Unterklasse<T>::machnochetwas() {
//...
}
So ist ruhe. Aber ich muss über alle Funktionen "template<typename T>" schreiben, sonst geht es nicht. Ich glaube ich mache etwas gewaltig falsch oder? Ist der Fehler schon sogar in der .h Datei? Macht man das so nicht?
Danke und Gruß