Я знаю, что мне не разрешено писать long& const x
. Но почему нет? Теоретически я мог бы постоянно ссылаться на x. Я просто не смог бы установить ссылку на другой адрес.Почему в C++ нет постоянных ссылок?
Почему это запрещено на C++?
Редактировать: Я знаю, что есть что-то, чего я не понимаю, но я могу назначить ссылку на другую переменную. Этот фрагмент кода работает:
#include <iostream>
int main()
{
int a = 1, b = 2;
int & x = a;
x = b;
return 0;
}
Но это противоречит тому, что вы делаете.
Вам не хватает того, что ссылки всегда постоянны? –
Ссылка на константу объявляется следующим образом: 'const long & x' –
*", но я могу назначить ссылку на другую переменную * * - no вы не можете; то, что на самом деле делает ваш код, это переместить значение 'b' в' a', а не переустанавливать ссылку. Помните, что - как ссылка - 'x' является формой псевдонима для' a', поэтому все, что вы делаете с ним, прозрачно влияет на 'a' - включая назначение. 'x' может *** не изменяться *** для обращения к другому объекту. –