Как работает следующий код на С++? Это логично?
const int &ref = 9;
const int &another_ref = ref + 6;
Почему С++ допускает литеральную инициализацию для ссылок const, когда то же самое не допускается для ссылок, не содержащих константы? Например:.
const int days_of_week = 7;
int &dof = days_of_week; //error: non const reference to a const object
Это можно объяснить тем, что для изменения значения переменной, к которой она обращается, может использоваться ссылка не const. Следовательно, С++ не допускает неконстантную ссылку на константную переменную.
Может ли это быть возможным объяснением? С++ не позволяет:
int &ref = 7;
Потому что это не логично, но:
const int &ref = 7;
Почти эквивалентен:
const int val = 7;
Для константных переменных допускается буквальная инициализация.
P.S.: В настоящее время я изучаю Lippman С++ Primer.