boost::*_ptr, какой больше подходит? |
Здравствуйте, гость ( Вход | Регистрация )
boost::*_ptr, какой больше подходит? |
void* |
11.7.2008, 19:20
Сообщение
#1
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
мне нужен самый обычный смарт-поинтер, который бы при выходе из скопа подчищал бы память за своим объектом, какой указатель для этого лучше подходит?
также, может ли кто-нибудь охарактеризовать разные виды бустовских смарт-поинтеров? какие особенности, где лучше использовать? |
|
|
Tonal |
11.7.2008, 21:04
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
scoped_ptr именно это и делакт.
|
|
|
void* |
11.7.2008, 21:37
Сообщение
#3
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
еще один вопрос: допустим есть
можно ли освобождать память самому? например так:
будет ли все корректно происходить и в случае невыполнения if-инструкции scoped_ptr очистит память сам, если она не была освобождена? |
|
|
Tonal |
12.7.2008, 8:29
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Нет. Памятью занимается сам scoped_ptr.
delete ptr вообще не скомпилиться, т.к. ptr не является указателем. Если нужно досрочно удалить объект, можно написать ptr.reset(); |
|
|
void* |
14.7.2008, 8:01
Сообщение
#5
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
Tonal, спасибо, буду знать
|
|
|
Andrew Selivanov |
14.7.2008, 10:18
Сообщение
#6
|
Участник Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6 |
мне нужен самый обычный смарт-поинтер, который бы при выходе из скопа подчищал бы память за своим объектом, какой указатель для этого лучше подходит? также, может ли кто-нибудь охарактеризовать разные виды бустовских смарт-поинтеров? какие особенности, где лучше использовать? Если ты не собираешься пихать указатели в контейнер, рассмотри std::auto_ptr Ну а boost указатели хорошо расписаны в доках http://www.boost.org/doc/libs/1_35_0/libs/...r/smart_ptr.htm Сообщение отредактировал Andrew Selivanov - 14.7.2008, 10:20 |
|
|
Текстовая версия | Сейчас: 24.4.2024, 14:00 |