小白有关问题:C++不允许让reference改指向不同对象

小白问题:C++不允许让reference改指向不同对象
我对这句话不太理解:
[code=C/C++][/code]
string s1 = "aaa";
string s2 = "bbb";
string& res1 = s1;
string& res2 = s2;
res2 = s1;
res2 = res1;
cout<<res2<<endl;
貌似这样是可以的啊?求大神们赐教。

------解决方案--------------------
这是赋值啊,res2 = s1后s2的内容已经被改了。

引用只能初始化。
------解决方案--------------------
额 你这是给原来引用的对象赋值,而不是使得引用指向其他对象
------解决方案--------------------
res2 = s1;
这句话并不是让res2指向s1,而是让s2=s1,是赋值字符串而不是改变引用对象

实际上引用本质上就是个常量指针封装一下而已,原理上当然是可以改变引用对象的
之所以不能改变,就是概念设计上的问题,设计者认为引用不该被改变
语法上也容易造成歧义,就如楼主所写的代码一样