2012-10-03 3 views
1

클래스를 인터페이스에서 상속 받도록 선언하는 템플릿 프로토 타입을 어떻게 만들 수 있습니까?
해당 클래스의 모든 특수화가 동일한 인터페이스에서 상속 받기를 원합니다. 같은모든 프로토 타입이 동일한 클래스/인터페이스를 상속 할 수 있도록 템플릿 프로토 타입을 상속하는 방법은 무엇입니까?

뭔가 :

template <typename T> 
class A : public BaseInterface { } 

template <> 
class A<int> { } //somehow still inherit from the interface "BaseInterface" 

답변

3

수 없습니다. 템플릿은 단지 "클래스"가 아닙니다. 그것들은 "클래스 용 템플릿"입니다 (C++ 용어가 아닌 영어 용어입니다). 실제 수업이 만들어지는 해골입니다. 그래서 당신은 말할 때 : 당신이 실제로 클래스를 선언하지 않는

template <typename T> 
class A : public BaseInterface { } 

, 당신이 구축 될 몇 가지 클래스에 대한 규칙을 제공하고 있습니다. 템플릿

template <> 
class A<int> { } //somehow still inherit from the interface "BaseInterface" 

을 전문으로하는 경우 또한, 당신은 당신이이 전문 다르게 행동 할 말을 명시 적으로이야.

+0

오른쪽, 생각 ... 고마워. –

2

당신은 명시 적 전문화를 제약 조건 수 없습니다. 그러나 BaseInterface에서 파생 된 것일 수 있습니다.

template <> class A<int>: public BaseInterface {...} 
관련 문제