我是C ++的新手,而且我经常遇到常见的语句(例如http://yosefk.com/c++fqa/ref.html#fqa-8.1中的语句),该语句与指针相反,在初始化之后,您不能将引用指向另一个对象。
我在这里有一个代码段,我认为该代码段确实可以做到这一点:
std::string s1("Hello");
std::string s2("World");
std::string& refToS = s1; // initialize reference to object 1
cout << refToS << endl;
refToS = s2; // make reference point to object 2
cout << refToS << endl;
输出为“ Hello World”。
这可能是一个沉闷的问题,但我无法弄清楚我的误解是什么。
最佳答案
您所做的是将s2
分配给s1
,refToS
仍指的是s1
。
std::string s1("Hello");
std::string s2("World");
std::string& refToS = s1; // initialize reference to object 1
cout << refToS << endl;
refToS = s2; // assign s2 to the referent of refToS
cout << refToS << endl;
cout << s1 << endl;
cout << s2 << endl;
输出为
Hello
World
World
World