![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Я, собственно, сама толком не понимаю, зачем нужен weak_ptr, разве что для полноты картины. Сама в таких случаях использую обчные указатели или ссылки. Но вообще циклических зависимостей лучше избегать, т.е. связь должна быть в одну сторону, по возможности, конечно.
Если зависимый объект не является частью владельца или выпускается им наружу, т.е. не может быть гарантированно и безопасно прибит со смертью владельца - это не взаимоотношения Owner - Child. Тут нужно разруливать дополнительно, в зависимости от ситуации. Но наиболее безопасная схема - указатель с подсчетом ссылок. Если в такой ситуации возникает опасность взаимоблокировок, а объекты равнозначны, т.е. нельзя с уверенностью сказать, кто гарантированно проживет дольше, то можно, скажем, сделать доступ через некоторые "дескрипторы": объекты храняться в неком закрытом хранилище, доступ к ним идет через дескрипторы, и можно в результате получить 0, если объект уже уничтожен. Это например. -------------------- ... |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
В классическй такой связки родители перед смертью говорят всем детям своё последнее слово - забудьте обо мне. Тож делают дети. Не забываем занялть указатели, чтобы рекурсия не пошла. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |