0 / 0 / 0
Регистрация: 23.10.2018
Сообщений: 3
|
||||||
Ошибка при вызове деструктора (при вызове delete в деструкторе)23.10.2018, 17:37. Показов 3250. Ответов 22
Метки нет Все метки)
(
Не могу найти ошибку, при вызове деструктора от класса, который был создан при помощи конструктора с параметром const String &, возникает ошибка - не работает delete[]. Остальные деструкторы для других классов работают нормально.
Код:
0
|
23.10.2018, 17:37 | |
Ответы с готовыми решениями:
22
Ошибка при вызове деструктора |
19417 / 10034 / 2445
Регистрация: 30.01.2014
Сообщений: 17,697
|
|
24.10.2018, 18:10 | |
Деструкторы вызываются автоматически для автоматических объектов. Они поэтому и называются - автоматические.
![]() Сами деструкторы нужны, конечно же. Но вот вызывать их явно вы не должны, о чем я вам выше и сказал. Добавлено через 2 минуты Собственно ошибка в том, что компилятор все равно будет генерировать код автоматического вызова деструктора для ваших объектов. Не смотря на ваш явный вызов. Отсюда получаем ошибку двойного освобождения памяти, которая у вас проявилась вот так Добавлено через 1 минуту Если он вас именно так учил, то с прискорбием можно заключить, что язык C++ он не знает. С прискорбием для вас, конечно же. Вам же у него и дальше учиться, я так понимаю.
2
|
Вездепух
![]() ![]() ![]() 12873 / 6737 / 1810
Регистрация: 18.10.2014
Сообщений: 17,054
|
|
24.10.2018, 21:41 | |
В дополнение к уже сказанному: почему здесь
length вдруг получает значение 1 ?Это, в частности, приведет в неправильной работе всех методов, которые используют значение length из сконструированного по умолчанию объекта.
0
|
Неэпический
![]() |
||||||
24.10.2018, 21:47 | ||||||
0
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
25.10.2018, 12:59 | |
Его нужно использовать если выделяете и создаете объект в куче, а не на стеке. И тогда его использование облегчит жизнь - на нужно будет вызывать удаление по указателю объекта самостоятельно(т.к у объекта unique_ptr так же будет автоматически вызван деструктор после выхода из зоны видимости, т.к этот объект на стеке.). И это скорее совет "нужно использовать", что в конечном итоге вовсе и не обязательно )
Добавлено через 2 минуты Кажется Вы заблуждаетесь(или ткните меня носом), strLen вернет длину не включая символа "конец строки" Добавлено через 2 минуты
0
|
19417 / 10034 / 2445
Регистрация: 30.01.2014
Сообщений: 17,697
|
|
25.10.2018, 13:04 | |
0
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
25.10.2018, 13:07 | |
Не по теме: Что то не понимаю сути вопроса, как это что то доказывает или опровергает? Добавлено через 2 минуты
0
|
19417 / 10034 / 2445
Регистрация: 30.01.2014
Сообщений: 17,697
|
|
25.10.2018, 13:10 | |
Автоматические объекты = объекты с automatic storage duration.
Точно так же как статические объекты = объекты со static storage duration. Т.е. когда говорят статические объекты - вас это не смущает, а с автоматическими вдруг накладка вышла? Или у вас просто норма выработки по буквоедству на сегодня не выполнена? ![]() Тогда спешу вас расстроить: я в этой теме не давал формальных определений, чтобы к ним можно было так придираться.
0
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
25.10.2018, 13:12 | |
Не по теме: Так и быть уточню, НЕ включая l переписаны символы Добавлено через 1 минуту
0
|
Mental handicap
![]() 1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||||
25.10.2018, 13:35 | ||||||
aLarman,
Вернет без, но именно в той строке(вернее после выхода из цикла) на позиции l в массиве to_str действительно уже будет записан '\0'. Зачем еще раз его туда писать?) Добавлено через 13 минут
0
|
19417 / 10034 / 2445
Регистрация: 30.01.2014
Сообщений: 17,697
|
|
25.10.2018, 13:36 | |
А я вот свою не выполнил, так что вот вам аргументы:
В стандарте их тоже так называют периодически. Потому что эти фразы синонимичны по принципу, указанному выше:
0
|
25.10.2018, 13:36 | ||||||
Помогаю со студенческими работами здесь
20
Ошибка при вызове деструктора Ошибка при вызове деструктора Ошибка при вызове деструктора Ошибка при вызове деструктора Ошибка при вызове деструктора Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
|
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
|
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations
рестрикции доступа на сервер sshd
статья:
https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
|
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
|
Многопоточное программирование в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
|
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
|
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
|
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
|
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
|
Образование и практика
Igor3D 21.03.2025
Добрый день
А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
|