Здравствуйте, Максим Рогожин, Вы писали:
МР>Привет!
МР>Наследование только от интерфейсов:
МР>МР>class SomeClass : public Interface1, // интерфейс
МР> public Interface2, // интерфейс
МР> ...
МР> public InterfaceN // интерфейс
МР>{
МР>public:
МР> ~SomeClass();
МР>//...
МР>};
МР>
МР>~SomeClass() переопределяет сразу все деструкторы интерфейсов?
У класса может быть только один деструктор!
Деструктор — не принимает никаких аргументов.
В деструкторе следует очистить все ресурсы, используемые в объекте данного класса и требующие очистки.
МР>Для удаления объекта SomeClass можно любой интерфейс использовать? Например, так можно?
МР>МР>std::unique_ptr<Interface2> obj(new SomeClass()); // удаляться будет через интерфейс Interface2
МР>
Да, если в
Interface2 определён виртуальный деструктор.
Если же там вирт/деструктора нет, то очистки ресурсов не будет