Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Деструкторы, способы деинициализации памяти 
:(
    Опции темы
viktory12345
Дата 17.6.2011, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 8.6.2010
Где: Севастополь

Репутация: нет
Всего: нет



Доброго времени суток. Возник следующий вопрос. Какие, помимо деструкторов, способы очистки памяти существуют.
Спасибо за уделенное время.

PS Прошу прощения за возможно некорректно(неточно, неинформативно) поставленный вопрос. Данная формулировка является формулировкой преподавателя, возможно проффи поймут о чем идет речь.

Это сообщение отредактировал(а) viktory12345 - 17.6.2011, 19:57
PM MAIL   Вверх
Cheloveck
Дата 17.6.2011, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 3
Всего: 32



viktory12345, а каким образом деструктор очищает память?

Деструктор не очищает память, он вызывается рантаймом перед удалением объекта. Оператор new выделяет память, кладёт туда данные, затем инициализирует объект по средствам вызова конструктора. Оператор delete вызывает деструктор, затем возвращает память в кучу. При работе со стеком, всё это делается автоматически.
Что ты имеешь введу, мне не понятно.


--------------------
user posted image
PM Jabber   Вверх
viktory12345
Дата 17.6.2011, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 8.6.2010
Где: Севастополь

Репутация: нет
Всего: нет



Cheloveck, по правде сказать, мне тоже не особо понятно, что хочет услышать женщина, читавшая курс лекций по ООП. А если формулировка будет следующей : Какие механизмы выполняют действия, сходные с действиями деструктора?
PM MAIL   Вверх
bsa
Дата 17.6.2011, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(viktory12345 @  17.6.2011,  20:45 Найти цитируемый пост)
А если формулировка будет следующей : Какие механизмы выполняют действия, сходные с действиями деструктора? 

"деинициализация" или "деконфигурация".

Напишем тот же класс на языке С:
Код
typedef struct MyClass MyClass;
MyClass* MyClass_create(); //аналог new MyClass
void MyClass_destroy(MyClass*ptr); //аналог delete
void MyClass_initialize(MyClass *ptr);
void MyClass_deinitialize(MyClass *ptr);
...

MyClass *pClass = MyClass_create();
...
MyClass_destroy(pClass);
...
MyClass* MyClass_create()
{
   MyClass *ret = malloc(sizeof(*ret));
   MyClass_initialize(ret);  //инициализация - то что делает конструктор
   return ret;
}

void MyClass_destroy(MyClass *p)
{
   MyClass_deinitialize(p); //деинициализация - то что делает деструктор
   free(p);
}


Добавлено через 1 минуту и 17 секунд
Можно сказать, что деструкторы освобождают ресурсы, захваченные объектом во время жизнедеятельности.
PM   Вверх
afiskon
Дата 18.6.2011, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 31.3.2011
Где: Россия, Москва

Репутация: 1
Всего: 4



viktory12345, мне кажется, что вопрос задан  контексте лекций, который вам читал преподаватель. Поинтересуйтесь у одногруппников, что было на эту тему ну или хотя бы узнайте номер лекции, чтобы можно было ее у кого-то переписать.
PM MAIL WWW   Вверх
viktory12345
Дата 20.6.2011, 02:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 8.6.2010
Где: Севастополь

Репутация: нет
Всего: нет



bsa, благодарю за пример. К сожалению он никак не приблизил меня к ответу. Видимо сам вопрос поставлен некорректно.

afiskon, данный вопрос мог бы быть задан в контексте лекций 2 года назад. Сейчас идет подготовка к ГОСам, и вряд ли кто-то вспомнит такие нюансы. Искать ответ в лекциях бесполезно, о деструкторах 5 строчек. 

В любом случае, спасибо тем, кто не остался равнодушен к данному вопросу. Если будет озвучен ответ на вопрос, я обязательно отпишусь.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0498 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.