Я новичок в программировании на C ++, но давно работаю на C и Java. Я пытаюсь создать иерархию, подобную интерфейсу, в каком-то последовательном протоколе, над которым я работаю, и продолжаю получать сообщение об ошибке:
Undefined reference to 'operator delete(void*)'
Ниже приведен (упрощенный) код:
PacketWriter.h:
class PacketWriter {
public:
virtual ~PacketWriter() {}
virtual uint8_t nextByte() = 0;
}
StringWriter.h:
class StringWriter : public PacketWriter {
public:
StringWriter(const char* message);
virtual uint8_t nextByte();
}
Конструктор и функции nextByte реализованы в StringWriter.cpp, но ничего больше. Мне нужно удалить StringWriter из указателя на PacketWriter, и я получаю различные другие похожие ошибки, если я определяю деструктор для StringWriter, виртуальный или нет. Я уверен, что это простая проблема, которую я не замечаю как новичок.
Кроме того, я пишу это для микросхемы AVR, используя avr-g ++ в Windows.
Спасибо
avr-gcc
или что-то в этом роде, вам лучше использоватьavr-g++
или аналогичный. - person Alexandre C.   schedule 10.08.2011operator new
иoperator delete
, но если вы делаете что-то без поддержки, вам может потребоваться определить их самостоятельно. - person Kerrek SB   schedule 10.08.2011clients/clients_memcapable-memcapable.o: In function
std :: __ 1 :: allocator ‹char *› :: deallocate (char **, unsigned long) ': / usr / include / c ++ / v1 / memory: 1632: неопределенная ссылка наoperator delete(void*)'
- person Dereckson   schedule 29.04.2015