C/C++ - Классы: конструктор и деструктор

Ответить
Аватара пользователя
COM-BAT

C/C++ - Классы: конструктор и деструктор

Сообщение COM-BAT »

Пожалуста обясните для чего конструктор и диструктор в классе
Аватара пользователя
ferget

Re: C/C++ - Классы: конструктор и деструктор

Сообщение ferget »

Цитата COM-BAT:



Пожалуста обясните для чего конструктор и диструктор в классе
C/C++ - Классы: конструктор и деструктор




Возьмите книгу Хортон Visual C++ 2010 Полный курс, главы 8 и 9, там хорошо написано
Аватара пользователя
Delirium

Re: C/C++ - Классы: конструктор и деструктор

Сообщение Delirium »

Конструктор - начальное объявление класса. Деструктор - уничтожает экземпляр класса.
Аватара пользователя
pva

Re: C/C++ - Классы: конструктор и деструктор

Сообщение pva »

Конструкторы строят объект в начальном состоянии (задают начальные значения всех полей). Деструкторы уничтожают объект (чистят ссылки, освобождают ресурсы). Вместе они позволяют поддерживать правильную структуру данных в памяти. Конструктор должен построить объект так, чтобы деструктор после этого мог в любой момент этот объект разобрать обратно.



Например:



Рассмотрим модель человека, который берёт машину в кредит.

Изначально (при рождении) он ничего не должен (значит конструктор у него должен занулить поле "долг").

Перед смертью (не дай бог конечно, но для программ это дело обычное) он должен вернуть оставшуюся сумму. Значит его деструктор должен продать машину (если есть) и вернуть долг (если должен).

Если какое-то из указанных действий не выполнять, то начнётся бардак! А этого в памяти ну никак делать нельзя.



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



поздравьте меня, я расплатился Изображение
Ответить

Вернуться в «Программирование и базы данных»