Though we did not do so in our Stack
class template, member-function definitions can appear outside a class template definition. If you do this, each must begin with the template
keyword followed by the same set of template parameters as the class template. In addition, the member functions must be qualified with the class name and scope resolution operator. For example, you can define the pop
function outside the class-template definition as follows:
template< typename T >
inline void Stack<T>::pop()
{
stack.pop_front();
} // end function template pop
Stack<T>::
indicates that pop
is in the scope of class Stack<T>
. The Standard Library’s container classes tend to define all their member functions inside their class definitions.