|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Классы: конструктор и деструктор |
|
C/C++ - Классы: конструктор и деструктор
|
Пользователь Сообщения: 84 |
Пожалуста обясните для чего конструктор и диструктор в классе
|
|
Отправлено: 21:17, 12-01-2013 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать Цитата COM-BAT:
|
|
Отправлено: 23:22, 12-01-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Конструктор - начальное объявление класса. Деструктор - уничтожает экземпляр класса.
|
------- Отправлено: 10:51, 13-01-2013 | #3 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Конструкторы строят объект в начальном состоянии (задают начальные значения всех полей). Деструкторы уничтожают объект (чистят ссылки, освобождают ресурсы). Вместе они позволяют поддерживать правильную структуру данных в памяти. Конструктор должен построить объект так, чтобы деструктор после этого мог в любой момент этот объект разобрать обратно.
Например: Рассмотрим модель человека, который берёт машину в кредит. Изначально (при рождении) он ничего не должен (значит конструктор у него должен занулить поле "долг"). Перед смертью (не дай бог конечно, но для программ это дело обычное) он должен вернуть оставшуюся сумму. Значит его деструктор должен продать машину (если есть) и вернуть долг (если должен). Если какое-то из указанных действий не выполнять, то начнётся бардак! А этого в памяти ну никак делать нельзя. Вместе с исключениями, конструкторы и дестукторы позволяют делать очень сложные, но устойчивые системы. При вызове исключение автоматически разберёт деструкторами "по винтикам" все объекты, у которых успешно отработал конструктор (и для которых исключение не отловлено). Т.е. в памяти всегда соблюдается чистота и порядок. поздравьте меня, я расплатился ![]() |
Отправлено: 21:08, 14-01-2013 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Служебные - [addon] Утилита конструктор TextMode MassStorage-аддона (конструктор) | Mr dUSHA | Наборы обновлений для Windows XP/2003/Windows 7 | 845 | 27-05-2016 14:39 | |
C/C++ - [решено] Классы | COM-BAT | Программирование и базы данных | 4 | 11-01-2013 15:43 | |
классы | farik | Программирование и базы данных | 5 | 14-11-2012 13:17 | |
От куда взялся деструктор? | zl3p | Программирование и базы данных | 4 | 10-02-2007 22:52 | |
MFC - Как подключить MFC классы? | Sharkky | Программирование и базы данных | 1 | 17-03-2004 14:04 |
|