我是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分配给s1refToS仍指的是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

10-08 11:59