我是 C++ 编程的新手,但已经在 C 和 Java 领域工作了很长时间。我正在尝试在我正在处理的一些串行协议中做一个类似接口的层次结构,并不断收到错误:
Undefined reference to 'operator delete(void*)'
(简化)代码如下:
PacketWriter.h:
class PacketWriter {
public:
virtual ~PacketWriter() {}
virtual uint8_t nextByte() = 0;
}
字符串编写器.h:
class StringWriter : public PacketWriter {
public:
StringWriter(const char* message);
virtual uint8_t nextByte();
}
构造函数和 nextByte 函数在 StringWriter.cpp 中实现,但仅此而已。我需要能够从指向 PacketWriter 的指针中删除 StringWriter,如果我为 StringWriter 定义了一个析构函数,无论是否虚拟,我都会遇到各种其他类似的错误。我确信这是一个简单的问题,我作为新手忽略了。
另外,我正在为 AVR 芯片编写这个,在 Windows 上使用 avr-g++。
谢谢