Название: [Решено] lvalue required as left operand of assignment - Как бороться? Отправлено: PulSar.CE3194694 от Август 24, 2010, 14:38 Вылезла данная ошибка: lvalue required as left operand of assignment. Вот здесь:
Код ListOfdx - это список из элементов типа double. В одном месте программы пытаюсь присвоить элементу под номером currIndex величину dx (тоже double), а вылезает такая вот штука. Тоже происходит, если делать вот это: Код Как лечить? Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: Авварон от Август 24, 2010, 14:45 Код: ListOfdx[currIndex] = dx; Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: Sancho_s_rancho от Август 24, 2010, 15:00 Попытка присвоить возвращаемому значению(rvalue).
Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: PulSar.CE3194694 от Август 24, 2010, 15:46 Потрясающе! Мои знания растут! ;D ;D
Хм, не помню, где это было написано, чтобы писать в квадратных скобках. Или мы его просто как массив считаем? И почему .value() не подходит?) Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: Авварон от Август 24, 2010, 15:53 потому что value возвращает T а operator[] возвращает T&
Разницу чуете? Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: PulSar.CE3194694 от Август 24, 2010, 16:08 Кстати вот здесь это не прокатывает:
Код
Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: Авварон от Август 24, 2010, 16:14 та же ошибка
Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: PulSar.CE3194694 от Август 24, 2010, 16:18 Тогда как исправить?
Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: Авварон от Август 24, 2010, 16:21 а) добавить возвращение ссылки в dx()
б) сделать метод setDx(T value) выбирайте. 2е более правильно Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: PulSar.CE3194694 от Август 24, 2010, 16:54 Рисовать слот ради какой-то фигни не вариант. Нужно как-то по другому. Вон в QPointF сделали же rdx(), че тут нельзя было? >:(
Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: Авварон от Август 24, 2010, 17:58 вы разницу между слотом и сеттером знаете?
вообще, какие классы используются? кто такая матрица? QTransform? Название: lvalue required as left operand of assignment - Как бороться? Отправлено: PulSar.CE3194694 от Август 24, 2010, 20:53 Код Разница? Нет. Где прочитать? Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: BRE от Август 24, 2010, 20:57 Код
Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: PulSar.CE3194694 от Август 25, 2010, 11:22 Как присвоить значение вот здесь:
Код Оно у меня не присваивается. Код компилируется норм. Не знаю, что делать, если писать .x(), то вылезет та самая ошибка. Причем если присваивать значение вот сюда, то оно присвоится: Код Т.е. если после закрывающей скобки не писать через точку методы, как, например в первом случае, то все ОК. Как быть? Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: Авварон от Август 25, 2010, 11:27 выучить с++ блин! Прочтите про разницу между передачей по значению и по ссылке. Дело не в скобочках, а в том, что эти методы возвращают
Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: PulSar.CE3194694 от Август 25, 2010, 13:05 Какой код нужно писать, чтобы работало? Спасибо, прочту.
Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: Авварон от Август 25, 2010, 13:10 Код
Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: PulSar.CE3194694 от Август 25, 2010, 13:28 Нет, нет, с этим уже разобрался, вот с этим:
Код Чтобы присваивало. Пробовал setX() использовать, создавал временные переменные, куда сохранял ListOfAxisXright[CurrentIndex], и откуда хотел менять координату x второй точки, но она не менялась. Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: BRE от Август 25, 2010, 13:31 Как описана переменная ListOfAxisXright?
Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: Авварон от Август 25, 2010, 13:35 телепатирую - это список QLineF
Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: BRE от Август 25, 2010, 13:43 Код
Название: Re: lvalue required as left operand of assignment - Как бороться? Отправлено: PulSar.CE3194694 от Август 26, 2010, 10:48 Низкий поклон :)
|