我的编译器抱怨处理str.size函数的代码行“Expression is not assignable”。我不知道我错了什么。有人可以帮忙吗?我将一个字符串传递给一个函数并尝试获取它的长度。
int ValueString::value(string str)const
{
int length;
str.size() = length;
return length;
}
答案 0 :(得分:4)
str.size()
返回一个无法分配给的R值。
length
是L值,可以分配给。
你的意思是:
int ValueString::value(const string& str)const
{
int length;
length = str.size();
return length;
}
当然,这可以简化为:
int ValueString::value(const string& str) const
{
return str.size();
}
它可能比这更简化,也许......
答案 1 :(得分:3)
编译器消息说明了一切。您无法分配函数调用size()
的结果。我想你可能意味着int length = str.size()
。