返回引用的函数返回一个左值。因此,这样的函数可用于任何要求使用左值的地方
#include <iostream>
#include <string>
using namespace std;
char &get_val(string &str, string::size_type ix)
{
return str[ix];
}
int main()
{
string s("a value");
cout << s << endl;
get_val(s, 0) = 'A';
cout << s << endl;
return 0;
}
给函数返回值赋值可能让人惊讶,用于函数返回的是一个引用,因此这是正确的,该引用是被返回元素的同义词
如果不希望引用返回值被修改,返回值应该为const
const char &get_val