我的编译器抱怨处理str.size函数的代码行“表达式不可分配”。我不能说我错了。有人可以帮忙吗?我正在将字符串传递给函数并尝试获取其长度。

   int ValueString::value(string str)const
   {
        int length;
        str.size() = length;
        return length;

    }

最佳答案

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();
}


可能会进一步简化。

07-24 09:46
查看更多