Vererbung von Template Klassen
-
Hallo,
ich habe eine Template Klasse von der ich eine Klasse ableite.
In der Basisklasse hab ich ein Struct definiert, welches ich im Kind verwenden möchte.Krieg es aber einfach nicht hin
Hier der Code:
template <class T> class basisKlasse { public: basisKlasse() { } basisKlasse(const basisKlasse& orig) { } virtual ~basisKlasse() { } protected: struct basisStruct { T test; }; };
#include "basisKlasse.h" #include <iostream> using namespace std; template <class T> class tolleKlasse : public basisKlasse<T> { public: tolleKlasse() { } tolleKlasse(const tolleKlasse& orig) { } virtual ~tolleKlasse() { } void print() { cout << this->myStruct.test; } void setValue(T value) { this->myStruct.test = value; } private: basisKlasse<T>::basisStruct myStruct; };
Fehler:
In file included from main.cpp:9:
tolleKlasse.h:36: error: expected;' before "myStruct" tolleKlasse.h: In member function
void tolleKlasse<T>::setValue(T) [with T = int]':
main.cpp:17: instantiated from here
tolleKlasse.h:33: error: 'class tolleKlasse<int>' has no member named 'myStruct'
tolleKlasse.h: In member functionvoid tolleKlasse<T>::print() [with T = int]': main.cpp:18: instantiated from here tolleKlasse.h:29: error: 'class tolleKlasse<int>' has no member named 'myStruct' make[2]: Leaving directory
/cygdrive/c/Users/Manuel/Documents/NetBeansProjects/vererbung'
make[1]: Leaving directory `/cygdrive/c/Users/Manuel/Documents/NetBeansProjects/vererbung'
-
typename basisKlasse<T>::basisStruct myStruct;
-
arghonaut schrieb:
typename basisKlasse<T>::basisStruct myStruct;
Funktioniert
Vielen Dank