Функция размера строки не работает - PullRequest
0 голосов
/ 04 ноября 2011

Мой компилятор жалуется, что «Выражение не присваивается» для строки кода, обрабатывающей функцию str.size. Я не могу сказать, что я не прав. Может кто-нибудь помочь? Я передаю строку в функцию и пытаюсь определить ее длину.

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

    }

Ответы [ 2 ]

4 голосов
/ 04 ноября 2011

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

Это можно упростить еще дальше, возможно ...

3 голосов
/ 04 ноября 2011

Сообщение компилятора говорит само за себя. Вы не можете присвоить результат вызова функции size(). Я думаю, что вы, вероятно, имеете в виду int length = str.size().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...