84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
|
||||||
1 | ||||||
Почему не работает деструктор?18.05.2015, 19:36. Показов 2119. Ответов 11
Метки нет (Все метки)
Собственно говоря, почему?
0
|
18.05.2015, 19:36 | |
Ответы с готовыми решениями:
11
Почему не работает деструктор? Почему деструктор не работает? Почему деструктор работает неправильно? почему деструктор работает вначале? |
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
18.05.2015, 19:43 | 3 |
Сообщение было отмечено Vaderkos как решение
Решение
В 21 строке попытка освободить память, которая не выделена динамически (в конструктор передается строковый литерал).
1
|
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
|
|
18.05.2015, 19:45 [ТС] | 4 |
Компилируется и отлично работает, проблема с уничтожением объекта - вылетает.
Добавлено через 1 минуту А как тогда исправить и выделить память динамически?
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||||||||||||
18.05.2015, 19:47 | 5 | |||||||||||||||
попытайтесь прочитать вдумчиво.
Программа не должна компилироватся! Добавлено через 2 минуты
Найдите отличия
0
|
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
|
|
18.05.2015, 19:50 [ТС] | 6 |
Этот конструктор я удалил, он уже не нужен(из предыдущего задания). Во время уничтожения обьекта вылетает ошибка.
0
|
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
|
|
18.05.2015, 19:54 [ТС] | 8 |
Так как он остался с предыдущего задания а ошибка у меня в деструкторе.
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
18.05.2015, 19:55 | 9 |
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
18.05.2015, 19:57 | 10 |
Сообщение было отмечено Vaderkos как решение
Решение
Вторая ошибка - вы пытаетесь очистить память, которая вам не пренадлежит (программа создала в памяти строковый литерал, а вы такой волосы назад решили ей командовать и удалять когда вам вздумается. Да кто вы такой? Страуструпу только подвласна даная магия!!! )
1
|
84 / 83 / 8
Регистрация: 31.03.2015
Сообщений: 447
|
||||||
18.05.2015, 20:03 [ТС] | 11 | |||||
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
18.05.2015, 20:08 | 12 |
Если совсем по-хорошему, то использовать std::string вместо char*.
Если требуется по-сишному, то как обычно. Выделили память (уже сделано), скопировали содержимое строки (напр. strcpy).
0
|
18.05.2015, 20:08 | |
18.05.2015, 20:08 | |
Помогаю со студенческими работами здесь
12
Почему создается виртуальный деструктор A, а в таблице виртуальных функций лежит деструктор B Почему не вызывается деструктор? Почему не отрабатывает деструктор? Почему вызывается деструктор? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |