| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Большое количество указателей на один объект. |
| Автор: Elfet 12.3.2010, 14:00 |
| Всем привет! Возникла в программе у меня такая проблема - слишком большое количество указателей на один и тот же объект. И если удаляю я его, везде приходится не забыть поставить NULL. Можно как-нибудь более просто ссылаться на один объект из разных мест? И если удаляю его, то что бы можно было по всем указателем сразу узнать это? Заранее спасибо! |
| Автор: mes 12.3.2010, 14:02 |
| shared_ptr (+ weak_ptr) |
| Автор: Elfet 12.3.2010, 15:34 | ||
| Почитал про умные указатели. Правильно ли я понял как с ними работать?
|
| Автор: Леопольд 12.3.2010, 15:55 | ||||||
Всё же лучше использовать конструктор.
Довольно специфично. Получается, что есть некий разделяемый ресурс, время жизни которого никак не зависит от объектов класса Test. Перед тем как использовать это ресурс, надо вызвать shared_ptr weak_ptr::lock(); и если этот разделяемый ресурс всё ещё существует, то заюзать его. Обычно, это надо при многопоточном программировании. Хотя, конечно, можно придумать применение и для одного потока. Может объяснишь для чего именно тебе это надо? |
| Автор: chaos 12.3.2010, 15:56 |
угу и кругом проверять не прибили ли объект |
| Автор: mes 12.3.2010, 16:02 |
предчувствуя о чем идем идет речь, скажу, что библиотеку желательно делать более свободной, и не навязывать свою политику клиенту. т.е. предоставлять набор частей и инструментов, с помощью которых пользователь за условные 5 минут, может соорудить себе нужное здание, а не сдавать в аренду полузаконченный-офис, на адаптацию которого может уйти условный день. |
| Автор: Леопольд 12.3.2010, 16:12 |
| Фигасе, неконтролируемая телепатия? |
| Автор: Elfet 12.3.2010, 16:20 | ||||||||||
| Вот такой вот пример с двумя классами Test и Over написал. Test:
Over:
Mesh:
main.cpp
Выводит следующее:
|