문제가 발생했습니다. 매우 구체적인 것으로 생각됩니다.가상 메서드 및 템플릿 클래스
나는이 수업하는 B aseclass과 (B aseclass에서)를 D erived 클래스를 가지고있다. B 템플릿 클래스 (또는 클래스 템플릿)이고 D erived 등급이 다시 구현하는데되는 순수 가상 메소드virtual void work(const T &dummy) = 0;
이 있지만 D로은 B보다는 D에서 유래이 또 다른 템플릿 클래스 인 경우 컴파일러는 가상 함수와 템플릿이 즉시 작동하지 않는다고 나에게 말합니다.
아이디어를 얻고 싶습니다.
난 당신이 allready이 클래스는 AS IS 일명 고정
, 나는 기존 코드 기반을 파괴하지 않고 편집 할 수 없습니다
그 문제를했다 특히, 어떤 생각과 아이디어에 대한 thankfull 오전template <typename T>
class B {
public:
...
virtual void work(const T &dummy) = 0;
..
};
예를 들어
class D : public B<int*>{
...
virtual void work(const int* &dummy){ /* put work code here */ }
..
};
편집 INT *을 : 컴파일러는 나에게 말한다, void B<T>::work(const T&)
[with T = int*]
이 페이지입니다 가상 가상 이내
이 (Qt는 클래스와이 시도로) 여전히 나를 위해 작동하지 않는 이유를 여기 읽기, Qt는 디자인 단점 ... http://lists.trolltech.com/qt-interest/2006을 -02/thread00693-0.html – drahnr
및 여기를 참조하십시오 http://doc.trolltech.com/qq/qq15-academic.html 결국 나는 템플릿 대신 오래된 악의적 인 void *를 사용해야합니다 ... – drahnr