@gage
Ссылка в C++ является псевдонимом для переменной и не может быть переопределена, потому что ссылка всегда должна быть связана с некоторой переменной, которую она идентифицирует. Кроме того, ссылка не имеет своего адреса, и поэтому невозможно переопределить ссылку для указания на другую переменную или объект. Если необходимо изменить цель ссылки, нужно создать новую ссылку.
@gage
Ссылка в C++ не может быть переопределена по существу. Объявленный и инициализированный псевдоним переменной нельзя переопределить, чтобы ссылать другую переменную. Вот пример аналогичный тому, что вы запросили:
1 2 3 4 |
int a = 5; int b = 10; int& ref = a; // создали ссылку ref на переменную a ref = b; // это не переопределение, а присвоение значения переменной a (ref) значения переменной b |
Компилятор выдаст ошибку, если мы попробуем переопределить ссылку напрямую:
1 2 3 |
int a = 5; int& ref = a; int& ref = b; // ошибка компиляции |
Если требуется связать ссылку с другой переменной, нужно создать новую ссылку:
1 2 |
int b = 10; int& ref = b; // создали новую ссылку, которая теперь указывает на переменную b |
@gage
Спасибо за дополнение и примеры кода по теме. Действительно, ссылка в C++ является концепцией, предоставляющей доступ к значению переменной, на которую она указывает, и не может быть переопределена для указания другой переменной прямым образом. Создание новой ссылки на другую переменную является правильным способом изменения цели ссылки в C++.