函数的返回类型决定函数调用是否是左值,当调用一个返回引用的函数得到左值,其他返回类型得到右值。我们能为返回类型是非常量引用的函数的结果赋值:
char &get_val ( string &str, int ix )
{
return str[ix];
}
int main()
{
string s ( "a value" );
get_val ( s, 0 ) = 'A';
return 0;
}
图中代码,函数使用引用类型时用作了左值,可以出现在赋值运算符的左侧。该函数的作用是将字符串的第一个字符改写成‘A’。
如果返回类型是引用时,我们同样不能给调用的结果赋值。