функтор как базовый класс в переполнении стека

У меня есть базовый класс функтора и класс, производный от функтора, который выглядит следующим образом:

class ReadSensor
{
public:
ReadSensor();
virtual ~ReadSensor(void){}
virtual int operator()(void) = 0;
};

class ReadSensorDummy : public ReadSensor
{
public:
ReadSensorDummy() : x(0) {}
ReadSensorDummy(int x): x(x) {}
~ReadSensorDummy(void) {}
int operator() (void) { return x;}
private:
int x;
};

Я создаю это так:

ReadSensor *rs =  new ReadSensorDummy(5);

Компилируется, но я получаю следующую ошибку ссылки:

Error   2   error LNK2019: unresolved external symbol "public: __cdecl ReadSensor::ReadSensor(void)" (??0ReadSensor@@QEAA@XZ) referenced in function "public: __cdecl ReadSensorDummy::ReadSensorDummy(int)" (??0ReadSensorDummy@@QEAA@H@Z) W:\SafetySystemTest.obj

Что случилось? Динамическая трансляция не нужна, но я попробовал, и это не помогло.

1

Решение

Вы объявили о намерении определить конструктор для ReadSensor, но компилятор не нашел ни одного из ваших исходных файлов. Вы можете попытаться определить пустое или удалить объявление.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]