Template-Schlüsselwort bei Memberfunktionen
-
Hallo,
wie ich weiß, muss man ja bei einer Klasse, die Templates verwendet das Schlüsselwort template inclusive Parameter der Klassendeklaration voranstellen. (-> "template<class T> class MyClass") Aber muss ich dann das Template Schlüsselwort inklusive Parameter auch vor Memberfunktionen definieren, selbst wenn ich den Template-Typ in der jeweiligen Memberfunktion gar nicht verwende ? Beispiel: (an der Funktion 'GetPushCount')
template<class T> class Stack { public: bool pop (T *); bool push (T ); void GetPushCount(); private: int iPushCount; } void Stack::GetPushCount() { printf ("Es wurden %d Mal Daten auf den Stack gepusht!", iPushCount); }Also...stimmt das dann so ? Oder müsste ich der funktion GetPushCount nun auch 'template<class T>' voranstellen und '<T>' noch zusätzlich zwischen Basisklassenname und dem Scopeoperator einfügen ?
-
Wenn du's nicht inline in der Klassendefinition einträgst, ist die Angabe "template<typename T> void Stack**<T>**::GetPushCount()" erforderlich, damit der Compiler erkennt, daß es zu deiner Template-Klasse gehört.