![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Всем привет!
Возникла в программе у меня такая проблема - слишком большое количество указателей на один и тот же объект. И если удаляю я его, везде приходится не забыть поставить NULL. Можно как-нибудь более просто ссылаться на один объект из разных мест? И если удаляю его, то что бы можно было по всем указателем сразу узнать это? Заранее спасибо! Это сообщение отредактировал(а) Elfet - 12.3.2010, 14:02 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
shared_ptr (+ weak_ptr)
|
|||
|
||||
| Леопольд |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Отличная связка. Нужно только понять как работает.
Это сообщение отредактировал(а) Леопольд - 12.3.2010, 15:19 -------------------- вопросов больше чем ответов |
|||
|
||||
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Почитал про умные указатели.
Правильно ли я понял как с ними работать?
|
|||
|
||||
| Леопольд |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
Всё же лучше использовать конструктор.
Довольно специфично. Получается, что есть некий разделяемый ресурс, время жизни которого никак не зависит от объектов класса Test. Перед тем как использовать это ресурс, надо вызвать shared_ptr weak_ptr::lock(); и если этот разделяемый ресурс всё ещё существует, то заюзать его. Обычно, это надо при многопоточном программировании. Хотя, конечно, можно придумать применение и для одного потока. Может объяснишь для чего именно тебе это надо? Это сообщение отредактировал(а) Леопольд - 12.3.2010, 16:00 -------------------- вопросов больше чем ответов |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
предчувствуя о чем идем идет речь, скажу, что библиотеку желательно делать более свободной, и не навязывать свою политику клиенту. т.е. предоставлять набор частей и инструментов, с помощью которых пользователь за условные 5 минут, может соорудить себе нужное здание, а не сдавать в аренду полузаконченный-офис, на адаптацию которого может уйти условный день. |
|||
|
||||
| Леопольд |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
-------------------- вопросов больше чем ответов |
|||
|
||||
| Elfet |
|
||||||||||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Вот такой вот пример с двумя классами Test и Over написал.
Test:
Over:
Mesh:
main.cpp
Выводит следующее:
|
||||||||||
|
|||||||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |