Question.1
A SystemManager owns a dynamically selected driver:
class SystemManager {
std::unique_ptr<IDriver> driver;
public:
SystemManager(int type) {
if (type == 1) driver = std::make_unique<UART>();
else driver = std::make_unique<SPI>();
}
// No destructor needed!
};
{ SystemManager sys(1); } // sys destroyedWho deletes the driver object?