Консультация № 66987
14.12.2006, 17:50
0.00 руб.
0 3 3
Здравствуйте, уважаемые эксперты. Расскажите, пожалуйста, что это за зверь auto_ptr и зачем он нужен? Чего не может сделать обычный указатель??

Обсуждение

Неизвестный
14.12.2006, 17:58
общий
это ответ
Здравствуйте, Alena!
Ну к примеру этот указатель умеет корректно разрушать объект под ним, высвобождая память даже без вашего вмешательства.
Видимо это зачатки Garbage Collector в .NET
Неизвестный
14.12.2006, 18:00
общий
это ответ
Здравствуйте, Alena!
auto_ptr - шаблон стандартной библиотеки шаблонов, реализующий паттерн проектирования SmartPointer ("умный" указатель). Для "умных" указателей нет нужды вручную вызывать delete, объекты, на которые ссылается этот указатель удаляются автоматически после выхода из области видимости. Необходимо заметить, что указатель автоматически вызывает delete, но не delete[], поэтому использовать его для массивов не стоит. Для массивов используйте другой шаблон, например, vector.
Неизвестный
14.12.2006, 18:06
общий
это ответ
Здравствуйте, Alena!

auto_ptr гарантирует, что объект, на который Вы создали указатель будет уничтожен (в т.ч. вызовется деструктор) по выходе из области видимости (в деструкторе auto_ptr).
Форма ответа