|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.10.2010, 21:39 | #1 |
Форумчанин
Регистрация: 18.09.2009
Сообщений: 133
|
Динамическая память и деструктор
Добрый вечер... возникла проблема с динамической памятью...в конструкторе копирования написал, что для каждого объекта выделяется динамическая память...а при вызове деструктора, нормально срабатывает только один раз, т.к. все данные для каждого объекта класса пишутся в одну область памяти...не пойму, почему так...помогите, пожалуйста...
Код:
|
28.10.2010, 00:50 | #2 |
Пользователь
Регистрация: 13.08.2009
Сообщений: 37
|
Не следует использовать явного вызова деструктора класса. После вызова деструктора, объект для которого он вызван нельзя использовать, т.к. в память где раньше находился объект может быть записано что угодно. Я предлагаю вместо явного вызова деструктора создать и использовать функцию класса, которая будет освобождать динамическую память и присваивать укзателю 0, а также добавить проверку попытки обращения к несуществующим данным по ложному указателю. Да, кстати, использовать неперегруженный оператор "=" с объектами работающими с динамической памятью нельзя, т.к. такое побитовое копирование по умолчанию может привести к ошибкам.
Последний раз редактировалось __Demon__; 28.10.2010 в 00:52. |
28.10.2010, 01:04 | #3 |
Форумчанин
Регистрация: 18.09.2009
Сообщений: 133
|
но дело в том, что мне нужно, чтобы память, выделенная под все эти объекты, освобождалась перед выходом...не пойму, почему, если конструктором инициализации проинициализировать объект, то под него выделяется отдельная область памяти, а если конструктором копирования, то пишет в одну и ту же область памяти...??
|
28.10.2010, 16:29 | #4 |
Форумчанин
Регистрация: 18.09.2009
Сообщений: 133
|
в общем вот, код, демонстрирующий работу трех видов конструкторов, перегрузку присваивания, и удаление динамически выделенной памяти в различных случаях..!! может кому пригодится...!!!
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамическая память | zhenya.ya | Помощь студентам | 1 | 22.09.2010 08:43 |
Динамическая память | Astat | Помощь студентам | 1 | 30.06.2010 20:40 |
Динамическая память | PaulSev | Общие вопросы Delphi | 12 | 25.03.2010 09:07 |
динамическая память | zhenya.ya | Помощь студентам | 2 | 24.02.2010 20:58 |
Динамическая память | liver1981 | Общие вопросы C/C++ | 5 | 22.04.2009 09:16 |