Проблемы с компоновщиком / наследованием / виртуальными функциями - PullRequest
1 голос
/ 17 марта 2011

Возникают проблемы с наследованием из класса шаблона.
Выглядит примерно так:

template<typename type>  
class base {  
protect:  
  ...  
public  
  ...  
  virtual bool func1(type var1);  
};  

// этот класс не шаблонизирован, но является производным от класса шаблона, не знаю, является ли его проблема

class derived : public base<type_spec_1> {  
protected:  
  ...   
public:  
  ...  
  bool func1(type_spec_1);// function I wish to override;  
};

// В .cpp я пытаюсь охватить функцию, она компилируется, но не связывается

bool derived::func1(type_spec_1 type){ return false; };  

Компоновщик выдает мне ошибку в следующем формате: LNK2001, неразрешенная символьная база :: func1 (type_spec_1);
Вроде не видит, что "derived"==base"<type_type_1>"
Как я могу предоставить правильный синтаксис для этого, если это даже возможно ????

1 Ответ

1 голос
/ 17 марта 2011

Разве тебе не нужно делать что-то подобное?

template<typename type>  
class base {  
protect:  
  ...  
public  
  ...  
  // provide implementation to be overriden
  virtual bool func1(type var1) { return (bool) 0; } 
};  

Поскольку class derived : public base<type_spec_1> говорит, что derived получено из типа base<type_spec_1>, но определение типа base<type_spec_1> еще не полностью реализовано?

...