Информация об изменениях

Сообщение Re[6]: Множественное наследование интерфейсов от 13.06.2018 8:30

Изменено 13.06.2018 8:42 AlexGin

Re[6]: Множественное наследование интерфейсов
Здравствуйте, SaZ, Вы писали:

SaZ>Здравствуйте, AlexGin, Вы писали:


AG>>У класса может быть только один деструктор!


SaZ>Ага, конечно. Смотрите, у класса A сразу три деструктора!

SaZ>
SaZ>class A : public B, public C {};
SaZ>


У класса A — один деструктор!
При разрушении объекта класса A — вызываются деструкторы базовых классов — точнее: сначала свой деструктор (класса A), затем деструкторы базовых классов.

AG>>Деструктор — не принимает никаких аргументов.

AG>>В деструкторе следует очистить все ресурсы, используемые в объекте данного класса и требующие очистки.

SaZ>Главное — не выкинуть при этом исключений


Также, как и в любых деструкторах...

SaZ>И вообще, это зависит от реализуемой логики.


...естесственно...
Re[6]: Множественное наследование интерфейсов
Здравствуйте, SaZ, Вы писали:

SaZ>Здравствуйте, AlexGin, Вы писали:


AG>>У класса может быть только один деструктор!


SaZ>Ага, конечно. Смотрите, у класса A сразу три деструктора!

SaZ>
SaZ>class A : public B, public C {};
SaZ>


У класса A — один деструктор!
При разрушении объекта класса A — вызываются деструкторы базовых классов (если они определены) — точнее: сначала свой деструктор (класса A), затем деструкторы базовых классов. Это поведение — стандартно для C++.

При создании объекта — всё происходит противоположно:
Первоначально отработают конструкторы базовыйх классов, а затем уже конструктор нашего (наследника).

AG>>Деструктор — не принимает никаких аргументов.

AG>>В деструкторе следует очистить все ресурсы, используемые в объекте данного класса и требующие очистки.

SaZ>Главное — не выкинуть при этом исключений

+100500
Также, как и в любых деструкторах...

SaZ>И вообще, это зависит от реализуемой логики.

+100500
...естесственно...