В С++-праймер я обнаружил, что const int &
может связываться с объектом int. Я не понимаю этого, потому что я думаю, что const int &
должен связываться с объектом const int
not a int
, int
объект может измениться, книга объясняет этот вопрос тем, что когда объект const int &
связывается с int
; между ними существует временный объект, например:
int a=0;
const int &r=a;
Мы можем использовать b
как временное значение, поэтому выше равно:
const int b=a;
const int &r=b;
Но я думаю, что книга неправильная, потому что, если существует временная, как b
, существующая между a
и r
, значение r
не может быть изменено, но когда я отлаживаю следующее кодирование в visual studio, я обнаружил, что это неправильно:
int a=0;
const int &r=a;
a=3;
cout<<r<<endl;
Вывод: r=3;
можно изменить значение r
, почему? Я этого не понимаю.