클래스 템플릿의 멤버
클래스 템플릿의 멤버는 모든 클래스의 멤버와 마찬가지로 정적 또는 비정적이거나, 데이터 멤버 또는 함수 멤버이거나, 다른 템플릿일 수 있습니다. 또한 템플릿 클래스 안이나 밖에 정의할 수 있습니다. 템플릿 클래스의 멤버는 유효한 형식 이름인 것처럼 템플릿 인수 목록에 지정된 알 수 없는 형식을 참조할 수 있으며, 상수 식인 것처럼 템플릿 인수 목록에 지정된 알 수 없는 개체 값을 참조할 수 있습니다.
템플릿 클래스의 멤버가 클래스 선언 밖에 정의된 경우 템플릿이 아닌 클래스의 멤버와 다른 방식으로 선언되어야 합니다. 함수가 멤버로 속한 템플릿 클래스를 지정하는 구문이 선언 앞에 와야 합니다.
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++에서는 멤버 템플릿이라는 중첩된 템플릿도 허용합니다. 멤버 템플릿은 중첩된 클래스 템플릿이나 멤버 함수 템플릿이 될 수 있습니다.