Since you create them in the class's constructor, the place to delete them would be the destructor. But the thing is: Smart-pointers take care of that automatically - there is no need to explicitly delete these objects. So the end result will be very similar to what Qt does in its own "hacky" way but using standard C++ features, instead.