Funciones miembro de clases de plantilla

Las funciones miembro pueden ser definido dentro o fuera de una plantilla de clase.Se definen como plantillas de función si se define fuera de la plantilla de clase.

Ejemplo

// 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()
{
}

Observe que al igual que con cualquier función miembro de clase de plantilla, la definición de miembros del constructor de la clase que la función incluye la lista de argumentos de plantilla dos veces.

El miembro que las funciones pueden sea plantillas de función, especificando parámetros adicionales, como en el ejemplo siguiente.

// 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()
{
}

Vea también

Referencia

Plantillas de clase