как в этом managed с++ удалять объекты?

PooH

MyClass^ ptr;
ptr = gcnew MyClass;
...
? delete(ptr) | ptr->Dispose | ...
есть задача разобраться в неком ужасном коде, временный костыль - надо пару объектов уничтожить - короче, не важно
просто интересно, как !правильно! удалять объекты в managed c++

PooH

правльно - освобождать память, вызывать деструктор
как я понял - managed c++ - это c# на с++ синтаксисе, пока читаю про финализатор, dispose и т. д.
но вникать как-то не хочется

Maurog

там же gc! обычно ему доверяют удаление объектов
если же под объектом лежат ресурсы, то надо уже delete использовать: в этом случае ресурсы (типа файла, нативные ресурсы и тд) буду освобождены. при этом объект все равно будет чиститься гарбадж коллектором
http://msdn.microsoft.com/en-us/magazine/cc300523.aspx?ppud=...

kokoc88

Ничего делать не нужно, сборщик мусора сам всё сделает.

Maurog

но вникать как-то не хочется
да там глубоко надо вникать. более конкретный вопрос задай
delete - это аналог Dispose, но это не финализация

PooH

то, что сборщик мусора это все уберет - мне и так понятно было
конкретно хочется в синхронном режиме прямо вот здесь вычистить область памяти, а не помечать ее, как удаленную
вычистить - удалить объект, освободить все ресурсы (хэндлы)
пока вижу только delete и ждать события очистки

kokoc88

конкретно хочется в синхронном режиме прямо вот здесь вычистить область памяти, а не помечать ее, как удаленную
Тебе не должно этого хотеться.
Если там есть unmanaged ресурсы, то их можно удалить, ботать много не надо:
http://msdn.microsoft.com/en-us/library/vstudio/ms177197.asp...

PooH

спасибо, тогда подумаю, как сделать костыль другим способом
Оставить комментарий
Имя или ник:
Комментарий: