Zgodnie z poniższym kodem kompilator wyświetla komunikat wskazujący, że error: templates may not be ‘virtual’
. Czy ktoś ma sugestię, jak rozwiązać problem?szablony mogą nie być "wirtualne"
template < class FOO_TYPE>
class CFoo{
public:
...
template < class BAR_TYPE >
virtual void doSomething(const CBar<BAR_TYPE> &); // here's the error
...
virtual ~CFoo();
protected:
MyClass <FOO_TYPE> * m_pClass;
};
template < class FOO_TYPE >
template < class BAR_TYPE >
void CFoo<FOO_TYPE>::doSomething(const CBar<BAR_TYPE> & refBar){
...
}
To nie jest błąd, to funkcja, nie można zadeklarować szablonu funkcji, który jest wirtualny. Musisz zbadać inne podejście, a to zależy od tego, co próbujesz zrobić ... – Nim
Rzecz w tym, że parametr funkcji jest obiektem szablonu i nie mogę zmienić jego deklaracji. – Javier
dlaczego potrzebujesz innej funkcji dla każdego wystąpienia CBar? –