2011-10-08 4 views
5

클래스 멤버 함수는 템플릿 함수이거나 정적 클래스 함수 여야합니다. 기본적으로 클래스와 함수는 필요에 따라 별도로 기술적으로 인스턴스화 할 수 있습니까?템플릿 메서드 및 템플릿 클래스 C++

템플릿 함수를 템플릿 클래스의 멤버로 사용하는 경우의 제한 사항은 무엇입니까? 동시에 둘 다 할 수 있습니까? 아니면 둘 중 하나입니까?

답변

9

당신은 템플릿 멤버 함수를 가질 수 템플릿

class X 
{ 

    template<typename T> 
    X(T t) 
    { 

    } 

}; 

그러나 물론, 단지이 있어야 하나의 비 템플릿 소멸자 될 수 있습니다 템플릿 클래스는 다음과 같습니다.

template <typename T> 
class Foo { 
public: 
    template <typename U> 
    void bar(const T& t, const U& u); 
}; 

template <typename T> 
template <typename U> 
void Foo<T>::bar(const T& t, const U& u) { 
    // ... 
} 
6

클래스 메소드는 템플릿 일 수 있습니다. 유일한 제한은 가상 일 수 없다는 것입니다.

편집 :

더 완료하려면, 생성자는

+0

가상이 아닙니다 :-) +1 – rubixibuc