为什么允许将值分配给右值引用(引用文字)?
int main()
{
int&& a = 5;
cout << a << endl; //5
a = 6;
cout << a << endl; //6
}
这是我对事物的理解:
"string"
,12
之类的文字永远无法更改。它们是“客观的”。int a = 3; a = 4;
例如我可以更改由函数返回的临时对象,即rvalue。
string three() { return “kittens”; }
three().insert(0, "All ")
但是我在这里了解到它正在更改函数three()
返回的临时变量,而不是更改文字"kittens"
。
因此,我一开始对样本感到困惑,为什么我允许更改引用数字5
的右值引用?提起a = 6;
时发生了什么事?