2 / 2 / 1
Регистрация: 26.09.2015
Сообщений: 85
|
|||||||||||
1 | |||||||||||
Удаление экземпляра класса в функции самого класса (Ошибка при отладке)03.11.2015, 22:33. Показов 945. Ответов 5
Метки нет Все метки)
(
Допустим, у нас есть класс Buffer, который хранит в себе указатель на класс некоторой матрицы и количество этих указателей refcounter
Buffer.h
Buffer.cpp
Если программа доходит до самоудаления экземпляра класса в функции decref, то вылезает debug-ошибка
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
03.11.2015, 22:33 | |
Ответы с готовыми решениями:
5
Ошибка при создании экземпляра класса Ошибка при добавление экземпляра класса Ошибка при добавлении экземпляра класса в поток
|
31 / 31 / 23
Регистрация: 23.03.2015
Сообщений: 210
|
|
03.11.2015, 22:57 | 2 |
Так делать нельзя. После вызова delete вызывается функция free, в стек ложится адрес возврата который указывает на конец функции decref. После очистки происходит возврат по адресу возврата, но так как там нечего нет, то выходит ошибка.(могу ошибаться
![]() Не по теме: Матрица развратница :D
0
|
2 / 2 / 1
Регистрация: 26.09.2015
Сообщений: 85
|
|
03.11.2015, 23:13 [ТС] | 4 |
С buf тоже пробовал - такая же ошибка
0
|
03.11.2015, 23:16 | 5 |
адрес затирается, утечка + по delete удаляется не пойми что.
Добавлено через 52 секунды И я так понимаю там подразумевался конструктор копирования, параметр должен быть ссылкой, а не указателем.
0
|
2 / 2 / 1
Регистрация: 26.09.2015
Сообщений: 85
|
|
04.11.2015, 01:06 [ТС] | 6 |
В конструктор мы передаём некоторый указатель на матрицу, который мы храним в классе Buffer
Почему затирается? Мы же просто присваиваем один указатель другому. Память как была, так и осталась. Цель состоит в том, чтобы в decref как раз удалить этот присвоенный указатель link, который мы положили в Buffer
0
|
04.11.2015, 01:06 | |
Помогаю со студенческими работами здесь
6
Явное создание экземпляра класса и явная специализация шаблона класса
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |