0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 12
|
||||||
1 | ||||||
Не вызывается деструктор01.06.2013, 06:28. Просмотров 960. Ответов 11
Метки нет Все метки)
(
_Здравствуйте. Я новичок в программировании, сейчас изучаю самостоятельно С++ по книге Джесса Либерти. При разборе одного из примеров передачи параметров в функцию как ссылок (с помощью указателей),столкнулся с тем, что в отличие от output в книге, у меня не выводится сообщение, которое прописано в деструкторе. Скажите плиз, в чем причина?
Код:
Making a cat... SimpleCat constructor... Frisky is 1 years old Frisky is 5 years old Calling FunctionTwo... FunctionTwo returing... Frisky is now 5 years old Frisky is 5 years old Для продолжения нажмите любую клавишу . . .
0
|
|
01.06.2013, 06:28 | |
При создании класса конструктор вызывается 2 раза, затем вызывается деструктор о_О
Не вызывается деструктор Деструктор не вызывается |
|
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 12
|
|
01.06.2013, 08:43 [ТС] | 3 |
_Вот я протупил... Я запускаю проги из под винды. Сейчас попробовал из под редактора. Нужная строка на выводе появилась. Спасибо, а то меня мучал этот вопрос.
Добавлено через 12 минут _Ещё один вопрос касательно возврата указателей из функций. В строке 58 возвращается указатель TheCat без оператора разыменовывания. Т. е. якобы адрес, а не значение или объект по адресу. Нужно ли понимать так, что результат возврата фунцкции FunctionTwo можно записать так: const SimpleCat * TheCat
0
|
Don't worry, be happy
|
||||||
01.06.2013, 09:23 | 4 | |||||
![]()
1
|
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 12
|
|
01.06.2013, 09:31 [ТС] | 5 |
_Я уже встречал подобную реакцию на эту книгу, хотя пока и не понимаю почему... Во всяком случае решил для начала всё же одолеть её(а то на полпути бросать как-то некомильфо), а более глубоко изучать по другой литературе.
0
|
Croessmah
|
01.06.2013, 09:32
#6
|
1
|
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 12
|
|
01.06.2013, 09:38 [ТС] | 7 |
_А если функция была бы объявлена
const SimpleCat const FunctionTwo (const SimpleCat * const TheCat) то тогда должно быть return *TheCat. Верно я понял?
0
|
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 12
|
|
01.06.2013, 09:41 [ТС] | 9 |
Спасибо за пояснения. А каку литературу для начинающих можете присоветовать?
0
|
Don't worry, be happy
|
||||||
01.06.2013, 09:47 | 10 | |||||
только Вам еще нужно будет переделать конструктор копий под
Лучшая книга по с++ для новичков Посоветуйте литературу по C++ для новичка если что, воспользуйтесь поиском. Так же есть тема со списком литературы: Литература C++
1
|
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 12
|
|
01.06.2013, 09:59 [ТС] | 11 |
Дякую.
0
|
01.06.2013, 11:00 | 12 | |||||||||||||||
На самом деле полностью конструктор копирования у вас должен иметь вид:
Добавлено через 11 минут Да, и в конструкторе по умолчанию тоже настоятельно рекомендую использовать список инициализации. Для int это может еще и ничего, а вот для более сложных типов это чревато излишними накладными расходами или и вовсе ошибками компиляции, т.к. запись типа
1
|
01.06.2013, 11:00 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Почему вызывается деструктор? Не вызывается деструктор структуры
Вызывается ли деструктор в данной программе? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |