#c
#c
Вопрос:
Будет ли оператор присваивания ( =
) возвращать значение левой (или правой части)?
QVector<function>::Iterator it;
binOp *bpl = nullptr;
bool b1 = (bpl = dynamic_cast<binOp *>(amp;*(it-2))) != nullptr;
Итак, у меня есть свой собственный класс (BinOp : function), и я пытаюсь использовать dynamic_cast в выражении. Если я буду использовать присваивание bpl
, будет ли оно равно bpl
и таким же, как это?:
bpl = dynamic_cast<binOp *>(amp;*(it-2)));
bool b2 = bpl != nullptr;
Так будет ли b1 равно b2?
Комментарии:
1. после
=
выполнения не должно иметь значения, сравниваете ли вы с lhs или rhs
Ответ №1:
=
Оператор присваивания возвращает ссылку на левый операнд. Итак, ваш 1-й пример будет работать просто отлично, и результат будет эквивалентен вашему 2-му примеру.