crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в boost::*_ptr
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Andrew Selivanov Дата 14.7.2008, 10:18
 
Цитата(void* @ 11.7.2008, 20:20) *
мне нужен самый обычный смарт-поинтер, который бы при выходе из скопа подчищал бы память за своим объектом, какой указатель для этого лучше подходит?
также, может ли кто-нибудь охарактеризовать разные виды бустовских смарт-поинтеров? какие особенности, где лучше использовать?

Если ты не собираешься пихать указатели в контейнер, рассмотри std::auto_ptr :)
Ну а boost указатели хорошо расписаны в доках http://www.boost.org/doc/libs/1_35_0/libs/...r/smart_ptr.htm
void* Дата 14.7.2008, 8:01
  Tonal, спасибо, буду знать
Tonal Дата 12.7.2008, 8:29
  Нет. Памятью занимается сам scoped_ptr.
delete ptr вообще не скомпилиться, т.к. ptr не является указателем.
Если нужно досрочно удалить объект, можно написать ptr.reset();
void* Дата 11.7.2008, 21:37
  еще один вопрос: допустим есть
{
boost::scoped_ptr<MyClass> ptr = new MyClass;

можно ли освобождать память самому? например так:
if(...) delete ptr; //память очищается при выполнении какого-то условия
}

будет ли все корректно происходить и в случае невыполнения if-инструкции scoped_ptr очистит память сам, если она не была освобождена?
Tonal Дата 11.7.2008, 21:04
  scoped_ptr именно это и делакт.
void* Дата 11.7.2008, 19:20
  мне нужен самый обычный смарт-поинтер, который бы при выходе из скопа подчищал бы память за своим объектом, какой указатель для этого лучше подходит?
также, может ли кто-нибудь охарактеризовать разные виды бустовских смарт-поинтеров? какие особенности, где лучше использовать?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 1:01