| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Конструктор и деструктор |
| Автор: Новичек89 29.6.2009, 00:10 |
| Здравствуйте, помогите пожалуйста!!! Мне нужна помощь, и посоветовались обратится к Вам! Вообщем такая ситуация... Наш преподаватель по "технологии программирования (СИ++)" требует уже 2й год от студентов ответ, на вопрос "Чем отличается Конструктор от Деструктора?" Ну и при этом нужно назвать их свойства. Мы знаем, и говорим ему : 1) В классе может быть не один конструктор, а деструктор только один. ; 2) Конструктор может иметь аргументы, а деструктор нет; 3) Деструктор не имеет параметров, а конструктору они могут передаваться; 4) Конструктор не может быть виртуальным, а диструктор виртуальный; 5) Они оба называются так же как и класс; 6) Конструктор может быть перегружен, деструктор - нет; 6)Конструктор не возвращает значение, не может быть объявлен, как const,volatile,static; не наследуется, может быть явно/не явно вызван; может быть конструктор копирования; 7) Конструктор выполняется при инициализации объекта, деструктор - после работы программы. 8) Оба могут быть по умолчанию; 9) Для конструктора не используется тип void Преподаватель говорит, что вы все не называете еще одного отличия. И вот он от нас требует этого отличия, "хоть ты тресни..." =((( Смотрели книги, искали в инете - без рез-та... Помогите, подскажите пожалуйста!!! Этот ответ поможет поскорее сдать этот экзамен... Очень надеюсь на помощь знающих людей !!! Конечно дело не в тильде. ... Спасибо заранее!!! |
| Автор: hsilgos 29.6.2009, 00:33 | ||
деструктор тоже явно можно вызвать |
| Автор: kemiisto 29.6.2009, 00:36 |
| Новичек89, списочек, конечно, бредовый. Как, впрочем, и вопрос. 5 "отличие" убило. Ну... даже не знаю... Скажите, что-нить типа, конструктор выделяет память под объект, деструктор - освобождает. |
| Автор: hsilgos 29.6.2009, 00:36 | ||
| Есть еще как бэ не отличие, а, скорее, общее правило: из конструктора можно кидать исключение - из деструктора строго не реккомендуется (хотя тоже можно) Добавлено через 2 минуты и 23 секунды
Этим занимается не конструктор/деструктор. Скорее конструктор - конструирует объект, инициализирует. Деструктор - освобождает ресурсы |
| Автор: EvilsInterrupt 29.6.2009, 00:39 |
| Ну и в чем сложность ? Правильно требует! Конструктор это создатель Деструктор это разрушитель Т.е. самое главное что один СОЗДАЕТ, а другой РАЗРУШАЕТ. А все остальное,это уже технические детали. Они существенны, но для понимания сути важно именно это отличие! Грамотный у вас препод, побольше таких бы! ;) Незачем по верхушкам скакать, надо в корне знать что и как. Зная суть вещей, можно мыслить более широко и следовательно писать более правильный код и знать где примерно искать баги, если таковы видешь. |
| Автор: bsa 29.6.2009, 00:46 |
| 2 и 3 - одно и тоже. Только другими словами и в другой последовательности 4. Деструктор может быть виртуальным. 5. не совсем, у деструктора перед названием идет тильда. 6. Это скорее тоже самое, что и 2, и 3 7. Деструктор выполняется при уничтожении экземпляра класса, а конструктор - при создании. 8. "деструктор по умолчанию"? Это что-то новенькое. Потому что "конструктор по умолчанию" - это конструктор, который можно вызвать без указания параметров. 9. В случае наследования конструкторы вызываются от базового к наследнику, а деструкторы от наследника к базовому. |
| Автор: UnrealMan 29.6.2009, 00:55 | ||
Возможно, он хочет услышать, что у деструктора не может быть списка инициализации |
| Автор: hsilgos 29.6.2009, 00:56 | ||
Не пытался, просто решил, что Вы об этом не знаете Список бредовый, а препод явно хочет услышать про создание/уничтожение, согласен... |
| Автор: Новичек89 29.6.2009, 01:02 | ||||||
Спасибо, за поправки - учтется! ;)
Ну это говорилось ему при определении этих двух функций!
Я написала, что при их отличиях, мы должны назвать их свойства и характеристики.
Объясните, пожалуйста, что в данном случаи "Исключение" - ? И "Кидать исключение" - ??? По сути, никто так, ничего нового и не назвал... Вопрос остается - Что нужно этому Преподавателю ??? !!! |
| Автор: Dmi3ev 29.6.2009, 01:16 | ||||
Похоже он сам не знает, раз второй год от вас это хочет
Ну к твоим отличиям хз че прибавить |
| Автор: EvilsInterrupt 29.6.2009, 01:49 |
| >>Похоже он сам не знает, раз второй год от вас это хочет Если бы знал, сам бы вам рассказал У меня в КГТУ им. Туполева Суздальцев был, это препод еще тот. За "однерку" вместо "еденицы" дальше уже не слушал и чел отправлялся учить дальше. Меж прочем, правильно делал, если каждому позволить на преведовском езыге говорить, то это уже хз че получится. Мы технари, а у нас терминология должна быть одна и таже. Говоря о конструкторе, мы должны четко понимать о чем идет речь. Что это не простая ф-ция которая может быть перегружена, и что это не просто ф-ция создающая объект класса а-ля CreateMyObjct(my_objct * obj); , а совершенное четкое понятие: "Конструктор это спец.ф-ция класса входящая в его состав и служащая для создания объекта этого класса". Все, после этих слов, у человека если и появятся вопросы, то вполне конкретные и по существу! |
| Автор: Новичек89 29.6.2009, 01:55 | ||||
Это " фигнюшечка " называется ТИЛЬДА. И о ней, я тоже писала... Мы вот тоже думаем уже, что мол, мож над нами стебется ??? ... Хотя я уже битый час читаю инет по этой тме...Что то новенькое для себя нахожу, остается в этом разобраться, хотя бы на уровне ответа... Благо прогить возле него он не требует...Ведь это процесс творческий - и под напором и взглядом "надзиратель" неосуществим =((( Мне кое где, ради смеха (Я так полагаю) сказали, ответить ему, что отличие в их Названии... Завтра, так и отвечу...Если он так и будет говорить "Правда, но не То", "Я Вас понял, но Вы не правы", "Студент, это не то что я жду" ... и т.д. ((( Добавлено через 4 минуты и 47 секунд
КОШМАР!!! Благо у нас не так... Но тоже еще тот фрукт!!! Вообщем просто ... аут. когда я с 1го раза не сдала, поняла что единственный способ получить это "удв" - найти ответ на этот вопрос. Так, как он сказал - "Кто ответит, это конечно не зачет, и не + пол бал (!ДАЖЕ!), Я буду относится к этому студенту по-другому" ... А как "по-другому" - это загадка... И все таки верю,что кто-нить напишет что-нить ДЕЛЬНОЕ!!! |