Question.4
A base class pointer deletes a derived object:
class IDriver {
public:
virtual void init() = 0;
// No virtual destructor!
};
class UART : public IDriver {
uint8_t* buffer;
public:
UART() : buffer(new uint8_t[64]) {}
~UART() { delete[] buffer; }
void init() override { /* ... */ }
};
IDriver* drv = new UART();
delete drv; // Delete via base pointerWhat happens?