Memberfunktionen von Vorlagenklassen
Memberfunktionen können innerhalb oder außerhalb einer Klassenvorlage definiert sein.Sie werden als Vorlagen Funktion definiert, wenn sie außerhalb der Klassenvorlage definiert sind.
Beispiel
// 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()
{
}
Beachten Sie, dass so wie dies bei jeder Vorlagenklassen, die Memberfunktion einer Definition des Konstruktors Memberfunktion der Klasse, die die Vorlagenargumentliste doppelt enthält.
Memberfunktionen befinden sich die Funktion aus und geben ein von zusätzlichen Parameter, wie im folgenden Beispiel gezeigt.
// 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()
{
}