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();
}
Это можно упростить еще дальше, возможно ...