몇 가지 코드입니다. C++에서는 템플릿 가상 함수를 만들 수 없다는 것을 알고 있습니다. 어떤 대안이 있습니까?템플릿 여기에 가상 함수
1
A
답변
2
귀하의 구체적인 필요에 따라 다릅니다.
template<typename T>
class IWorker {
public:
virtual void Do(T x) const = 0;
};
template<typename T>
class TSomeWorker : public IWorker<T> {
void Do(T x) const {
// ...
}
};
0
그래서, 당신은 정적 다형성 (템플릿)을 혼합 및 런타임 다형성 (가상 함수)를하고 싶지만, 사람들은 직교 :하지만에 따라 무엇을 당신은 내가 제안 기록했다.
class IWorker {
public:
virtual void Do(void* x) const = 0;
};
template< typename T >
class TSomeWorker : public IWorker {
void Do(void* x) const {
T* realX = reinterpret_cast< T* >(x);
// ...
}
};
관련 문제
- 1. 가상 템플릿 함수 오버로드
- 2. 템플릿 클래스의 순수 가상 템플릿 함수
- 3. 가상 템플릿?
- 4. 여기에 동적 템플릿
- 5. C++ 함수 템플릿 템플릿 인수가있는
- 6. 여기에 무엇입니까 (함수 리터럴)
- 7. 중첩 템플릿 클래스의 템플릿 함수
- 8. 링커/상속/가상 함수 문제
- 9. 함수 포인터 및 가상 함수
- 10. 가상 함수, 함수 오버로딩, 상속
- 11. C++의 템플릿 및 가상 함수? 허용 되었습니까?
- 12. 당신은 무엇을 선택할 것입니까? 가상 함수, 템플릿 또는 분기?
- 13. 템플릿 함수
- 14. 함수 템플릿
- 15. 템플릿 멤버 함수 비 템플릿 클래스 T
- 16. 템플릿 내에서 템플릿 함수 바인딩
- 17. 템플릿 유형을 반환하는 템플릿 함수
- 18. 가상 함수 재정의 구성 오류
- 19. C++ : 개인 가상 함수 대 순수 가상 함수
- 20. 가상 함수 테이블 오프셋
- 21. C++ (가상) 함수 표
- 22. vtable의 가상 함수 주소
- 23. 가상 함수 출력?
- 24. 부모의 가상 함수 호출
- 25. 가상 함수 및 클래스
- 26. C++ 가상 함수 성능
- 27. 가상 함수 호출의 최적화
- 28. 가상 함수 오버라이드 문제
- 29. C++ 가상 함수 숨김
- 30. 가상 함수 문제
비슷한 질문 : http://stackoverflow.com/questions/7648430/designing-hiearchical-classes-with-template-function/7648621#7648621 – jpalecek
다른 : HTTP와 같은 경우에, 당신은 캐스팅 할 필요가 : //stackoverflow.com/questions/7968023/c-virtual-template-method – jpalecek