Сообщение Re[6]: Множественное наследование интерфейсов от 13.06.2018 8:30
Изменено 13.06.2018 8:42 AlexGin
Re[6]: Множественное наследование интерфейсов
Здравствуйте, SaZ, Вы писали:
SaZ>Здравствуйте, AlexGin, Вы писали:
AG>>У класса может быть только один деструктор!
SaZ>Ага, конечно. Смотрите, у класса A сразу три деструктора!
SaZ>
У класса A — один деструктор!
При разрушении объекта класса A — вызываются деструкторы базовых классов — точнее: сначала свой деструктор (класса A), затем деструкторы базовых классов.
AG>>Деструктор — не принимает никаких аргументов.
AG>>В деструкторе следует очистить все ресурсы, используемые в объекте данного класса и требующие очистки.
SaZ>Главное — не выкинуть при этом исключений
Также, как и в любых деструкторах...
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>
У класса A — один деструктор!
При разрушении объекта класса A — вызываются деструкторы базовых классов (если они определены) — точнее: сначала свой деструктор (класса A), затем деструкторы базовых классов. Это поведение — стандартно для C++.
При создании объекта — всё происходит противоположно:
Первоначально отработают конструкторы базовыйх классов, а затем уже конструктор нашего (наследника).
AG>>Деструктор — не принимает никаких аргументов.
AG>>В деструкторе следует очистить все ресурсы, используемые в объекте данного класса и требующие очистки.
SaZ>Главное — не выкинуть при этом исключений
+100500
Также, как и в любых деструкторах...
SaZ>И вообще, это зависит от реализуемой логики.
+100500
...естесственно...
SaZ>Здравствуйте, AlexGin, Вы писали:
AG>>У класса может быть только один деструктор!
SaZ>Ага, конечно. Смотрите, у класса A сразу три деструктора!
SaZ>
SaZ>class A : public B, public C {};
SaZ>
У класса A — один деструктор!
При разрушении объекта класса A — вызываются деструкторы базовых классов (если они определены) — точнее: сначала свой деструктор (класса A), затем деструкторы базовых классов. Это поведение — стандартно для C++.
При создании объекта — всё происходит противоположно:
Первоначально отработают конструкторы базовыйх классов, а затем уже конструктор нашего (наследника).
AG>>Деструктор — не принимает никаких аргументов.
AG>>В деструкторе следует очистить все ресурсы, используемые в объекте данного класса и требующие очистки.
SaZ>Главное — не выкинуть при этом исключений
+100500
Также, как и в любых деструкторах...
SaZ>И вообще, это зависит от реализуемой логики.
+100500
...естесственно...