C++-Programmierung: Template-Klassen
Aus Wikibooks
Template-Klassen bieten, analog zu Template-Funktionen, die Möglichkeit, Klassen mit unterschiedlichen Datentypen zu verwenden. Templates werden vor allem bei Container-Klassen verwendet. Dies sind Klassen, die Instanzen anderer Klassen aufnehmen, z.B. Listen, Stacks, Queues.
Als Beispiel soll ein (ziemlich sinnfreies) Template-Array dienen:
template <typename T, int Groesse> class Array { private: T objekte[Groesse]; public: Array(); T &getObjekt(int Index); void setObjekt(const T &Objekt, int Index); };
Die Funktion getObjekt() ließe sich z.B. so implementieren:
template <typename T, int Groesse> T &Array<T, Groesse>::getObjekt(int Index) { return objekte[Index]; }
Eine Instanz der Klasse Array, mit konkretem Datentyp int und Größe 10, erstellen Sie wie folgt:
Array<int,10> meinArray;
[Bearbeiten] Überladen von Funktionen
Auch bei Template-Klassen können einzelne Funktionen überladen werden. Dazu wird die Funktion einfach noch einmal implementiert, jedoch steht dann anstelle des formalen Datentyps der gewünschte konkrete Datentyp:
template <int> int &Array<int>::getObjekt(int Index) { // andere Implementierung; }

