Re[4]: Множественное наследование интерфейсов
От: AlexGin Беларусь  
Дата: 12.06.18 22:02
Оценка: 2 (1)
Здравствуйте, Максим Рогожин, Вы писали:

МР>Привет!


МР>Наследование только от интерфейсов:

МР>
МР>class SomeClass : public Interface1,    // интерфейс
МР>                  public Interface2,    // интерфейс
МР>                  ...
МР>                  public InterfaceN     // интерфейс
МР>{
МР>public:
МР>   ~SomeClass();
МР>//...
МР>};
МР>


МР>~SomeClass() переопределяет сразу все деструкторы интерфейсов?


У класса может быть только один деструктор!
Деструктор — не принимает никаких аргументов.
В деструкторе следует очистить все ресурсы, используемые в объекте данного класса и требующие очистки.

МР>Для удаления объекта SomeClass можно любой интерфейс использовать? Например, так можно?


МР>
МР>std::unique_ptr<Interface2> obj(new SomeClass()); // удаляться будет через интерфейс Interface2
МР>


Да, если в Interface2 определён виртуальный деструктор.
Если же там вирт/деструктора нет, то очистки ресурсов не будет
Отредактировано 13.06.2018 4:55 AlexGin . Предыдущая версия . Еще …
Отредактировано 12.06.2018 22:08 AlexGin . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.