다음을 통해 공유


템플릿 클래스의 멤버 함수

멤버 함수는 클래스 템플릿의 내부 또는 외부에서 정의할 수 있습니다. 클래스 템플릿의 외부에서 정의하는 경우 함수 템플릿과 마찬가지로 정의됩니다.

예제

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

템플릿 클래스 멤버 함수의 경우와 마찬가지로 클래스의 생성자 멤버 함수에 대한 정의에는 템플릿 인수 목록이 두 번 포함됩니다.

다음 예제와 같이 멤버 함수는 추가 매개 변수를 지정하여 그 자체가 함수 템플릿이 될 수 있습니다.

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

참고 항목

참조

클래스 템플릿