다음을 통해 공유


클래스 템플릿의 멤버

클래스 템플릿의 멤버는 모든 클래스의 멤버와 마찬가지로 정적 또는 비정적이거나, 데이터 멤버 또는 함수 멤버이거나, 다른 템플릿일 수 있습니다. 또한 템플릿 클래스 안이나 밖에 정의할 수 있습니다. 템플릿 클래스의 멤버는 유효한 형식 이름인 것처럼 템플릿 인수 목록에 지정된 알 수 없는 형식을 참조할 수 있으며, 상수 식인 것처럼 템플릿 인수 목록에 지정된 알 수 없는 개체 값을 참조할 수 있습니다.

템플릿 클래스의 멤버가 클래스 선언 밖에 정의된 경우 템플릿이 아닌 클래스의 멤버와 다른 방식으로 선언되어야 합니다. 함수가 멤버로 속한 템플릿 클래스를 지정하는 구문이 선언 앞에 와야 합니다.

template < template-argument-list > definition

설명

또한 템플릿 클래스 밖의 멤버 함수에 대한 선언자는 템플릿 인수를 지정해야 합니다.

template-name < template-argument-list > :: identifier

예제

// members_of_class_templates1.cpp
// compile with: /c
template <class T, int i> 
class TempClass {
   int MemberSet(T, int);
};

template <class T, int i> 
int TempClass< T, i >::MemberSet( T a, int b ) {
   if( ( b >= 0 ) && (b < i) ) {
      Tarray[b++] = a;
      return sizeof( a );
   }
   else
      return -1;
}

C++에서는 멤버 템플릿이라는 중첩된 템플릿도 허용합니다. 멤버 템플릿은 중첩된 클래스 템플릿이나 멤버 함수 템플릿이 될 수 있습니다.

참고 항목

참조

클래스 템플릿