Ich habe ein Problem, ich denke, ein ganz bestimmtes.virtuelle Methoden und Vorlagenklassen
Ich habe 2 Klassen bekam, ein B aseclass und D erived Klasse (von B aseclass). B ist eine Template-Klasse (oder Klassen-Template) und hat eine rein virtuelle Methodevirtual void work(const T &dummy) = 0;
Die D erived Klasse soll diese neu zu implementieren, sondern als D ist abgeleitet von B statt D ist eine andere Vorlagenklasse, der Compiler spuckt mich an, dass virtuelle Funktionen und Vorlagen nicht gleichzeitig funktionieren.
Irgendwelche Ideen, um zu erreichen, was ich will?
Ich bin dankbar für alle Gedanken und Ideen, vor allem, wenn Sie bereits das Problem
arbeitetdieser Klasse ist auch bekannt als AS festgelegt ist, kann ich das nicht bearbeiten, ohne vorhandene Codebasis zu brechen
template <typename T>
class B {
public:
...
virtual void work(const T &dummy) = 0;
..
};
nehmen int * als Beispiel
class D : public B<int*>{
...
virtual void work(const int* &dummy){ /* put work code here */ }
..
};
Edit: Der Compiler sagt mir, dass void B<T>::work(const T&)
[with T = int*]
ist p ure virtuelle innerhalb D
Lesen Sie hier, warum es noch nicht für mich arbeiten (wie versucht, dies mit Qt-Klassen), Mangel Qt Design ... http://lists.trolltech.com/qt-interest/2006 -02/thread00693-0.html – drahnr
und siehe hier http://doc.trolltech.com/qq/qq15-academic.html am Ende muss ich alte bösen void * anstelle von Vorlagen verwenden ... – drahnr