Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Классы: конструктор и деструктор (http://forum.oszone.net/showthread.php?t=251283)

COM-BAT 12-01-2013 21:17 2065299

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

ferget 12-01-2013 23:22 2065390

Цитата:

Цитата COM-BAT
Пожалуста обясните для чего конструктор и диструктор в классе »

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

Delirium 13-01-2013 10:51 2065644

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

pva 14-01-2013 21:08 2066750

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

Например:

Рассмотрим модель человека, который берёт машину в кредит.
Изначально (при рождении) он ничего не должен (значит конструктор у него должен занулить поле "долг").
Перед смертью (не дай бог конечно, но для программ это дело обычное) он должен вернуть оставшуюся сумму. Значит его деструктор должен продать машину (если есть) и вернуть долг (если должен).
Если какое-то из указанных действий не выполнять, то начнётся бардак! А этого в памяти ну никак делать нельзя.

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

поздравьте меня, я расплатился :)


Время: 03:20.

Время: 03:20.
© OSzone.net 2001-