| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Что такое смарт поинтер? |
| Автор: Graf_h 28.3.2008, 11:42 |
| Здравствуйте! расскажите пожалуйста что такое смарт поинтер и для чего он нужен!Никак не могу понять! Заранее спасибо |
| Автор: MAKCim 28.3.2008, 11:52 |
| это класс, безопасно моделирующий семантику обычного указателя путем переопределения соответствующих операторов безопасное моделирование семантики подразумевает отсутствие утечек памяти и потенциального обращения по невалидным адресам там, где нужно такое поведение, он и применяется |
| Автор: Graf_h 28.3.2008, 12:07 |
| MAKCim, можна примерчик! очень нужно. спасибо |
| Автор: MAKCim 28.3.2008, 12:25 |
пример чего? |
| Автор: Graf_h 28.3.2008, 12:53 |
Простой пример с смарт поинтером и его использование! |
| Автор: korian 28.3.2008, 13:11 | ||
вот упрощенный вариант std::auto_ptr
|
| Автор: Graf_h 28.3.2008, 13:28 |
| korian, я так понял что A* m_a и есть смарт поинтер! но не пойму для чего он нужен |
| Автор: korian 28.3.2008, 13:31 | ||
| смарт поинтер тут APtr и APtr2 а нужны они за тем, чтобы не следить за удалением, особенно в таких случаях:
Добавлено @ 13:39 а вообще, смарт поинтеры - это продолжение идеомы ресурс должен пренадлежать объекту. если выделяем какой-то ресурс - сразу передаем его некоторому объекту, а он уже сам заботится когда этот ресурс освободить в случае с std::auto_ptr - освобождение ресурса при выходе из области действия. boost::shared_ptr - освобождение при отсутствии ссылок на ресурс. почитайте - http://www.insidecpp.ru/art/ учень увлекательно а потом вот это - http://www.insidecpp.ru/books/cpp_coding_standards/ |
| Автор: Graf_h 28.3.2008, 15:13 |
| korian, спасибо! +1 тема закрита |