Membri di template di classe
I membri del modello di classe sono simili ai membri di qualsiasi classe.Possono essere membri statici o non statici, o di dati funzione, né altri modelli.Possono essere definiti nella classe modello o all'esterno di.I membri di una classe modello possono fare riferimento ai tipi sconosciuti specificati nell'elenco di argomenti di modello come se fossero nomi di tipo validi e possono fare riferimento ai valori sconosciuti oggetti definiti nell'elenco di argomenti di modello come se fossero espressioni costanti.
Quando i membri delle classi basate su modelli sono esterno definito della dichiarazione di classe, devono essere dichiarati in modo diverso rispetto a quelli delle classi nontemplated.La dichiarazione deve essere preceduta da una sintassi che specifica la classe modello che la funzione è un membro di.
template < template-argument-list > definition
Note
Il dichiaratore per una funzione membro all'esterno della classe modello inoltre necessario specificare gli argomenti di modello.
template-name < template-argument-list > :: identifier
Esempio
// 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++ consente inoltre ai modelli annidati, detti modelli del membro.I template membri possono essere modelli annidati della classe o modelli di funzione membro.