Справочное руководство по C++

       

Операции присваивания


Есть много операций присваивания, все группируют слева направо. Все в качестве левого операнда требуют lvalue, и тип выражения присваивания тот же, что и у его левого операнда. Это lvalue не может ссылаться на константу (имя массива, имя функции или const). Значением является значение, хранящееся в левом операнде после выполнения присваивания.

выражение_присваивания: выражение операция_присваивания выражение

операция_присваивания: одна из = += -= *= /= %= =

В простом присваивании с = значение выражения замещает собой значение объекта, на который ссылается операнд в левой части. Если оба операнда имеют арифметический тип, то при подготовке к присваиванию правый операнд преобразуется к типу левого. Если аргумент в левой части имеет указательный тип, аргумент в правой части должен быть того же типа или типа, который может быть преобразован к нему, см. . Оба операнда могут быть объектами одного класса. Могут присваиваться объекты некоторых производных классов; см. .

Присваивание объекту типа "указатель на ..." выполнит присваивание объекту, денотируемому ссылкой.

Выполнение выражения вида E1 op= E2 можно представить себе как эквивалентное E1 = E1 op (E2); но E1 вычисляется только один раз. В += и -= левый операнд может быть указателем, и в этом случае (интегральный) правый операнд преобразуется так, как объяснялось в ; все правые операнды и не являющиеся указателями левые должны иметь арифметический тип.



Содержание раздела