Я использовал! (логическое отрицание) в C и на других языках, мне любопытно, делает любой знает, как сделать Ваше собственное! функция? или имеет творческий способ сделать тот?
Запомните оператор взрыва '!' или восклицательный знак на английском языке, встроен в язык программирования как средство отрицания.
Рассмотрим этот пример тернарного оператора:
(some condition) ? true : false;
Теперь, если бы это было отрицано, тернарный оператор был бы this
(some condition) ? false : true;
Обычная область, в которой некоторые программисты могут немного подойти, - это strcmp
, которая возвращает 0 для одинаковых строк и 1 для двух разных строк:
if (strcmp(foo, "foo")){ }
Когда на самом деле это должно быть:
if (!strcmp(foo, "foo")){ }
Обычно, когда вы отрицаете, происходит обратное, как показано в троичной системе. пример оператора ...
Надеюсь, это поможет.
Если вы хотите перегрузить оператор, правильный прототип:
bool operator!();
Я не большой поклонник операторов перегрузки, но некоторым людям нравится их синтаксический сахар. РЕДАКТИРОВАТЬ: это только C ++! Поместите это в определение вашего класса.
C считает все ненулевые значения "истинными" и нулевыми "ложными". Логическое отрицание осуществляется проверкой против нуля. Если ввод точно равен нулю, выведите ненулевое значение; в противном случае выведите ноль. В коде вы можете записать это как (input == 0)? 1: 0
(или вы можете преобразовать его в оператор if
).
Когда вы спрашиваете, как «создать свой собственный! Метод», вы имеете в виду, что хотите написать функцию, которая отрицает логическое значение, или вы хотите определить, что делает оператор восклицательного знака? Если первое, то заявления, которое я опубликовал выше, должно быть достаточно. Если последнее, то я боюсь, что это то, что невозможно сделать в C. C ++ поддерживает перегрузку операторов, и если это строго необходимо, я бы посоветовал поискать там.