![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Имеет ли смысл передавать во все функции по ссылке weak_ptr?
Вот так вот:
Или же нет? |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
имеется вввиду, что оптимальней, передавать weak_ptr по ссылке или по значению ?
имхо по константной ссылке, ибо основные нужные методы константны, и eще думаю Вам стоит обратить внимание что зачастую логичнее передовать shared_ptr, чем weak_ptr, не смотря на то, как внутри класса это будет использоваться. |
|||
|
||||
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Я передаю weak_ptr вместо shared_ptr - так как в классе я сохраняю weak_ptr и потом использую в методах. В другом же классе я могу просто удалить свою shared_ptr.
Значит думаете что по константой ссылке лучше чем по значению?
А чем отличаются просто ссылка от константной ссылки? Это сообщение отредактировал(а) Elfet - 13.3.2010, 13:44 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
это не причина, точно так же можно передать shared, а сохранить weak. хотя бы тем, что может быть применено приведение. т.е. если принимается константная ссылка на weak, то туда запросто можно подать shared. Добавлено через 1 минуту и 31 секунду так же нельзя выполнить будет неконстантные методы, например reset() у shared_ptr. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |