2016-08-13 1 views
1

Из любопытства, почему побитовый оператор ~ является единственным нелогичным оператором, который не имеет версии назначения в C++, то есть ~=? Все реляционные и побитовые операторы имеют версию назначения, но отсутствует ~=. Есть ли для этого конкретная причина?Почему ~ = единственный оператор нелогического присваивания, отсутствующий в C++?

Для всех операторов в C++, смотрите, например: http://www.tutorialspoint.com/cplusplus/cpp_operators.htm

+12

Это унарный оператор ... Что бы это означало? – 0x499602D2

+1

* Операторы Binary * natuarelly позволяют использовать версию compund-assigment. Но как бы вы предоставили версию compund-assigment для * унарного оператора? '~' унарный. Например, унарный '-' нелогичен, и у него также нет версии присвоения. – AnT

+3

Я не понимаю, почему вниз. Это законный вопрос, любопытство в отношении функционирования языка. – user2019840

ответ

7

Всех операторов, из которых сделаны сложные присвоения двоичной. Тильда, с другой стороны, является унарной, поэтому нет простого способа сделать из нее сложное задание, потому что ничего не стоит ставить на правую сторону.

Другие унарные операнды, такие как унарный минус и логический оператор NOT !, также не имеют составных назначений.

+0

@DimChtz Именно это заставило меня задаться вопросом о '~ =' случае и как и если бы у него мог быть оператор присваивания. – user2019840

+1

@DimChtz Вот что сказал ответ - нет составного назначения на основе '!' (Оператор неравенства - это нечто совершенно другое). – dasblinkenlight

 Смежные вопросы

  • Нет связанных вопросов^_^