Membros de modelos de classe
Membros de modelos de classe são da mesma forma que os membros de qualquer classe.Eles podem ser estáticas ou não estático, dados ou membros da função ou mesmo outros modelos.Eles podem ser definidos dentro da classe de modelo ou fora dela.Os membros de uma classe de modelo podem se referir os tipos desconhecidos especificados na lista de argumentos de modelo, como se fossem nomes de tipo válido, e eles podem consultar os valores de objeto desconhecido especificados na lista de argumentos de modelo, como se fossem expressões constantes.
Quando membros de classes de modelo são definidos fora da declaração da classe, deve ser declarados de forma diferente das classes nontemplated.A declaração deve ser precedida pela sintaxe, especificando a que a função é um membro da classe de modelo.
template < template-argument-list > definition
Comentários
O Declarador de uma função de membro fora da classe de modelo também deve especificar os argumentos de modelo.
template-name < template-argument-list > :: identifier
Exemplo
// 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++ também permite que os modelos aninhados, chamados de modelos de membro.Modelos de membro podem ser modelos de classe aninhada ou modelos de função de membro.