Учитывая приведенный ниже код, компилятор показывает сообщение, указывающее, что error: templates may not be ‘virtual’
. Есть ли у кого-нибудь предложение о том, как решить проблему?шаблоны могут быть не «виртуальными»
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){
...
}
Это не ошибка, это функция, вы не можете объявить шаблон функции, который является виртуальным. Вам нужно изучить другой подход, и это зависит от того, что вы пытаетесь сделать ... – Nim
Дело в том, что параметр функции является объектом шаблона, и я не могу изменить его объявление. – Javier
Почему вам нужна другая функция для каждого экземпляра CBar? –