![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 28.06.2009
Сообщений: 4
|
![]()
Здравствуйте, помогите пожалуйста!!! Мне нужна помощь, и посоветовались обратится к Вам!
![]() Наш преподаватель по "технологии программирования (СИ++)" требует уже 2й год от студентов ответ, на вопрос "Чем отличается Конструктор от Деструктора?" Ну и при этом нужно назвать их свойства. Мы знаем, и говорим ему : 1) В классе может быть не один конструктор, а деструктор только один. ; 2) Конструктор может иметь аргументы, а деструктор нет; 3) Деструктор не имеет параметров, а конструктору они могут передаваться; 4) Конструктор не может быть виртуальным, а диструктор виртуальный; 5) Они оба называются так же как и класс; 6) Конструктор может быть перегружен, деструктор - нет; 6)Конструктор не возвращает значение, не может быть объявлен, как const,volatile,static; не наследуется, может быть явно/не явно вызван; может быть конструктор копирования; 7) Конструктор выполняется при инициализации объекта, деструктор - после работы программы. 8) Оба могут быть по умолчанию; Преподаватель говорит, что вы все не называете еще одного отличия. И вот он от нас требует этого отличия, "хоть ты тресни..." =((( Смотрели книги, искали в инете - без рез-та... Помогите, подскажите пожалуйста!!! Этот ответ поможет поскорее сдать этот экзамен... Очень надеюсь на помощь знающих людей !!! Конечно дело не в тильде. ... Спасибо заранее!!! |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 04.11.2007
Сообщений: 117
|
![]()
Названием =)
Перед тем, как выложить код, я его всегда проверяю.
Если помог - тыкни на на весы слева, под аватарой. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
Можно посмотреть в сторону обработки исключений. Исключения выбрасываемые конструктором относительно нормально обрабатываются, а вот при исключениях деструктора как бы не прога вылетала наглухо, но тут надо уточнять, ибо это где-то давно читал, но на практике не проверял
![]() Ну или про вызов конструкторов/деструкторов при наследовании -разница в порядке вызовов "унаследованных" конструкторов/деструкторов, ну и случай с невиртуальный деструктором, когда будет утечка памяти, в случае удаления потомка по указателю на предка. При желании еще можно что-то заумное накопать, но полюбому окажется какая-нибудь глупость (типа упомянутого мной выше порядка вызовов конструкторов/деструкторов потомков). Кто знает что у этого препода на уме ![]() Ну и еще вспомнил: деструктору доступен объект полностью, а в конструкторе лучше только инициализировать члены класса, т.е. с this работать только на запись, но не на чтение, т.к. к этому моменту объект еще может быть не проинициализирован полностью и черт знает что там будет записано ![]() Последний раз редактировалось pu4koff; 29.06.2009 в 00:38. |
![]() |
![]() |
![]() |
#4 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
![]()
эм, ну хз, может еще тем, что деструктор можно вызвать явно, как член класса? а вообще имхо он вас разводит, чтобы вы больше инфы читали про ооп (в конце действительно скажет - названием)
![]() |
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 28.06.2009
Сообщений: 4
|
![]() ![]() ![]() А есть более грамотный варианты отличий??? Уже столько литературы перечитала ... |
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 28.06.2009
Сообщений: 4
|
![]()
Поясните пожалуйста, что в данном случаи исключения???
|
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 28.06.2009
Сообщений: 4
|
![]() ![]() Тут своя, четко сформулированная проблема... |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
Ну если взять эту заметку и немного подправить код:
Код:
![]() |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 27.04.2009
Сообщений: 123
|
![]()
Конструктор инициализирует, а деструктор освобождает память)))
<= P.S. если я тебе помог нажми весы слева <=
|
![]() |
![]() |
![]() |
#10 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
![]()
Ну скажите, что конструктор вызывается при создании объекта, а деструктор при его разрушении
![]() Последний раз редактировалось profi; 29.06.2009 в 18:46. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужна ваша помощь.) | Linus | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 11.05.2009 10:00 |
нужна ваша помощь! | forsy | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 19.05.2008 14:38 |