Fonctions membres des classes de modèle
Les fonctions membres peuvent être à l'intérieur ou un point défini de modèle de classe.Ils sont définis comme des modèles de fonction s'il est défini en dehors de le modèle de classe.
Exemple
// member_function_templates1.cpp
template<class T, int i> class MyStack
{
T* pStack;
T StackBuffer[i];
static const int cItems = i * sizeof(T);
public:
MyStack( void );
void push( const T item );
T& pop( void );
};
template< class T, int i > MyStack< T, i >::MyStack( void )
{
};
template< class T, int i > void MyStack< T, i >::push( const T item )
{
};
template< class T, int i > T& MyStack< T, i >::pop( void )
{
};
int main()
{
}
Notez que comme avec n'importe quelle fonction membre de classe de modèle, la définition du constructeur de la classe que la fonction membre inclut la liste d'arguments template deux fois.
Les fonctions membres se peuvent être des modèles de fonction, de spécifier des paramètres supplémentaires, comme dans l'exemple suivant.
// member_templates.cpp
template<typename T>
class X
{
public:
template<typename U>
void mf(const U &u);
};
template<typename T> template <typename U>
void X<T>::mf(const U &u)
{
}
int main()
{
}