![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 31.10.2012
Сообщений: 6
|
![]()
Прочитал в книге (кое-что не понял):
"... если конструктор или деструктор не созданы явно, компилятор создаст их сам. Конструктор, созданный компилятором, будет стандартным, т.е. без аргументов. Но можно создать и собственный стандартный конструктор." - тут понятно, а вот дальше: "Чтобы придать классу законченность, при объявлении конструктора не забудьте объявить и деструктор, даже если ему нечего делать. Хотя и стандартный деструктор будет работать корректно, отнюдь не повредит объявить собственный. Это сделает программу более ясной." - вот что автор здесь подразумевает под надписью стандартный деструктор? Это конструктор ведь может быть обычным (т.е. с параметрами, не имеет специального названия) или стандартным (т.е. без параметров). А деструтор всегда один и тот же без параметров. Просто я могу либо свой деструктор написать, либо не делать этого и тогда деструктор будет создан компилятором. Может тогда в книге опечатка? И автору следовало бы написать вот так: "Чтобы придать классу законченность, при объявлении конструктора не забудьте объявить и деструктор, даже если ему нечего делать. Хотя и деструктор созданный компилятором будет работать корректно, отнюдь не повредит объявить собственный. Это сделает программу более ясной." - может так правильнее будет? Я просто реально не понимаю, то ли в книге опечатка, то ли я что-то путаю... |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
Очевидно, автор имеет в виду деструктор, создаваемый компилятором. Он, конечно, будет работать корректно - в том смысле, что при его вызове программа рухнуть не должна, - но в случае, если класс управляет некоторым ресурсом (памятью, файловым дескриптором, etc.), использование деструктора по умолчанию будет приводить к утечке этого ресурса.
А что за книга? |
![]() |
![]() |
![]() |
#3 | |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
У вас в класе могут быть специфические поля, которые необходимо убивать руками.
Стандартный (странное какое-то название) ничего про них не знает, а ваш, если надо, знает и завалит их. Понятно? Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 31.10.2012
Сообщений: 6
|
![]() |
![]() |
![]() |
![]() |
#5 |
Регистрация: 31.10.2012
Сообщений: 6
|
![]()
Ну, наверное, в последующих главах про это будет ещё написано. Я просто только начал про классы читать и меня этот абзац затормозил на пару дней...
|
![]() |
![]() |
![]() |
#6 | |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#7 | |
Регистрация: 31.10.2012
Сообщений: 6
|
![]() Цитата:
![]() Либерти читать посоветовал одногруппник, он сам по нему изучал. Мне так то нравится эта книжка. Всё понятно вроде.Так, есть опечатки, но немного и их сразу видно. Так я другие книги смотрел, там какую не возьми, везде пишут, что для профессионалов или для тех кто знает язык С (например, Шилдт - самоучительС++). А эта книга как раз для тех кто вообще ничего не знает. Я поэтому и читаю. Ещё один человек мне рекомендовал почитать "Айвор Хортон - Вижуал С++, полный курс". Но я просто Либерти уже читаю и бросать не хочу. Хотя, а вообще чтобы стать программистом на С++, вообще достаточно прочитать 1 книжку и всё в ней разобрать? Я как-то не думал об этом. Вот вы конкретно сколько прочитали книжек? И как называются? (если не секрет). P.S. Про странные термины: А как на самом деле должен называться стандартный конструктор (это который без параметров). |
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 24.04.2012
Сообщений: 300
|
![]()
Есть только 3 расово верных автора, прочитав книги которых ты будешь все знать (если поймешь что написано, конечно) - Б.Керниган, Д.Ричи (разработали стандарт С), Бьёрн Страуструп (С++). В их книгах так сказать все в первоисточнике.
Помог? Оставляем отзыв =)
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 31.10.2012
Сообщений: 6
|
![]()
А в Страуструпе есть про "управляемые расширения для С++" (или как это правильно называется...) ?
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
с++ вопрос про деструктор | world12_tk | Помощь студентам | 1 | 13.11.2011 23:45 |
Деструктор | Niksan | Общие вопросы C/C++ | 8 | 08.04.2011 12:28 |
Конструкторы и деструктор С++ | DarkSwan | Помощь студентам | 2 | 07.01.2011 12:13 |
Деструктор класса | Lotles | Общие вопросы C/C++ | 2 | 16.10.2010 23:10 |
С++ (конструктор, деструктор) | Kventin | Помощь студентам | 4 | 31.03.2009 18:11 |