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.


Anmelden zum Antworten