我已经读过,一旦引用被初始化为一个对象,它就无法改变.以下代码有效,所以也许我误解了这个概念?(或者他们是否意味着更多的是不可改变的意义?)
int main()
{
int x = 4;
int& j = x;
cout << j << endl;
int y = 5;
j = y;
cout << j << endl;
}
Run Code Online (Sandbox Code Playgroud)
以下代码有效,所以也许我误解了这个概念?
的确,我担心你会误解这个概念.表达方式:
j = y;
Run Code Online (Sandbox Code Playgroud)
并没有重新绑定j,使之成为一个参考y,而,它分配的值:y通过引用的对象j.分配后尝试此操作:
cout << (&j == &x)
Run Code Online (Sandbox Code Playgroud)
你会看到它1被打印出来(意思j仍然是别名x).
初始化后,引用将成为绑定对象的别名.您在引用上执行的所有操作都是在引用的对象上执行的操作.
引用不能重新绑定或不绑定,它实际上只是它所绑定的对象的替代名称.