131. Ownership

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 destroyed

Who deletes the driver object?

Need Help? Refer to the Quick Guide below

Select Answer