Я пробовал искать ответ, но пока не повезло. Мой вопрос: зачем нужно указывать опорные переменные, когда они определены? Это техническая причина, или это то, что стандарт не позволяет?Почему ссылочные переменные должны быть инициализированы при определении?
Возьмите этот код, например:
int number = 42;
int& numberRef;
numberRef = number;
Выше не допускается, но код ниже:
int number = 42;
int& numberRef = number;
Почему компилятор не может обработать неинициализированный ссылочную переменную как неинициализированная указатель? Здесь что-то не хватает?
ссылка не может быть отбой: есть синтаксическая-семантическая двусмысленность, и она решена путем определения, что присваивание ссылки на самом деле означает присваивание сосланного объект, причем инициализация ссылки просто связывает ссылку на связанный объект. –
Если бы были неинициализированные ссылки, зачем они нужны нам вообще? У нас есть указатели. – Drop
@Drop, чтобы избежать необходимости писать '->' в нашем коде :) – Chiel