Member von Klassenvorlagen
Member von Klassenvorlagen sind ebenso wie Member einer Klasse.Sie können statisch oder nicht statisch, Funktionen oder Daten Member oder sogar andere Vorlagen sein.Sie können entweder innerhalb der Vorlagenklasse oder außerhalb davon definiert sind.Die Member einer Vorlagenklasse können die unbekannte Typen verweisen, die in der Vorlagenargumentliste angegeben werden, als ob sie gültige Typnamen waren, und sie können die unbekannten Objektwerte verweisen, die in der Vorlagenargumentliste angegeben werden, als ob sie konstante Ausdrücke handeln.
Wenn Member eines auf Vorlagen basierende Klassen außerhalb der Klassendeklaration definiert sind, müssen sie als nicht auf Vorlagen basierende Klassen unterschiedlich deklariert werden.Die Deklaration muss von der Syntax vorangestellt werden, die die Vorlagenklasse angibt, dass die Funktion als Member enthält.
template < template-argument-list > definition
Hinweise
Der Deklarator für eine Memberfunktion außerhalb der Vorlagenklasse muss auch die Vorlagenargumente angeben.
template-name < template-argument-list > :: identifier
Beispiel
// members_of_class_templates1.cpp
// compile with: /c
template <class T, int i>
class TempClass {
int MemberSet(T, int);
};
template <class T, int i>
int TempClass< T, i >::MemberSet( T a, int b ) {
if( ( b >= 0 ) && (b < i) ) {
Tarray[b++] = a;
return sizeof( a );
}
else
return -1;
}
C++ lässt auch die geschachtelte Vorlagen werden als Membervorlagen.Membervorlagen können Vorlagen der geschachtelten Klasse oder Vorlagen Memberfunktionsein.