Страницы

Поиск по вопросам

среда, 29 января 2020 г.

Переопределение ссылок

#cpp #ссылки


В учебнике написано, что любая ссылка должна быть определена в момент объявления,
и определена объектом, а не литералом. И её нельзя перевязать на другой объект. Из
любопытства сделал следующее: 

{
int val = 20,val2 = 2;
int &refVal = val;
refVal = val2;
cout<


Ответы

Ответ 1



Дело в том, что ссылка это просто синтаксический сахар над указателями, поэтому, если переписать Ваш код через них, должно быть понятно, что происходит: { int val = 20,val2 = 2; int*const refVal = &val; *refVal = val2; cout<<*refVal<

Ответ 2



Ссылка это второе имя (псевдоним) переменной. Именно потому она обязательно должна быть определена: вторым именем можно быть только если есть первое. Учитывая что в с++ любой тип данных - класс, и любая переменная объект - ваш код не противоречит словам автора. Под литералом видимо подразумевалось строковая константа. (например "myLit")

Комментариев нет:

Отправить комментарий