![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
как объявить переменную-ссылку, не инициализируя ее чем-то конкретным?
например для указателей можно написать T* p=0; а для ссылок как? |
|||
|
||||
ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 1 Всего: 23 |
Одно из базовых отличий независимой ссылки от указателя тем, что она всегда должна инициализироваться. Независимая ссылка это просто второе имя переменной.
|
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Вкратце - никак.
Ссылка всегда указывает на объект. В общем случае ссылки на null (т.е. ссылки которая не ссылается на валидный объект) не может быть, так как единственный путь получить ее - разыменовать нулевой указатель, а это undefined behavior. А зачем это нужно? Добавлено @ 22:58 Такого не бывает, ссылка должна инициализироваться, после этого ее нельзя заставить ссылаться на другой объект. Для описанного можно приметниь указатели.
Это сообщение отредактировал(а) azesmcar - 14.7.2009, 23:02 |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
ИванМ, я рад что вы это знаете, я тоже это знаю, но мне бы проблему решить...
у меня должен быть примерно такой код T& x; ... x=...; т.е. сначала объявление ссылки, потом ее инициализация. |
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
ок, я хочу такой код:
|
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Так не пойдет?
|
|||
|
||||
GoldFinch |
|
||||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
azesmcar, нет, потому что видимость переменной объявленной внутри for(;;) ограничена только этим for(;;)
Добавлено через 3 минуты и 35 секунд
какбэ работает |
||||
|
|||||
ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 1 Всего: 23 |
Если так:
|
|||
|
||||
azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Храни указатель, а для итерации оставь reference.
Добавлено через 33 секунды опередил ![]() |
||||
|
|||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
ИванМ, azesmcar,
как раз так сейчас и написано ![]() |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
azesmcar, так я хотел чтоб было красиво - неполучилось. написал временно некрасиво, запостил на форум, продолжил писать дальше
но хотелось бы всеже красиво) |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
GoldFinch
Попробуй организовать итерацию по указателю.
что-то вроде этого. Но я не знаю что там в serverList.servers, можно ли изменить? А может вообще лучше будет убрать foreach и использовать iterator-ы? Это сообщение отредактировал(а) azesmcar - 15.7.2009, 08:08 |
|||
|
||||
zim22 |
|
||||||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
смотря что понимать под "работает". если компилируется - то да, "работает" ![]() ***
azesmcar, , или я чего-то не понимаю, или... как вы ссылку с нулём связали? только константые ссылки такое умеют. опечатались наверно. Это сообщение отредактировал(а) zim22 - 15.7.2009, 07:12 |
||||||
|
|||||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |