код ниже будетне работает («!»), Действующий везде?
вызывает функцию-член объекта Sales_item с именем item1. -C++ Primer четвёртый ЭОД. (Книга)
// first check that item1 and item2 represent the same book
if (item1.same_isbn(item2))
, который возвращает истину, если ISBN из item1 is equal to item2
, но тебе дать некоторые упражнения, которые делают меня хотят использовать противоположный эффект к исходному состоянию, не равно (очевидно) , так что я положил его как этот
if (!item1.same_isbn(item2))
компилятор компилировать, но результат промаха от ожидаемого, так что то, что сказал мне, что там, где код действителен, но обработка то, что я не ожидал.
так, согласно названию, не работает ли оператор «(!!)) Одинаково везде?
Исправьте меня, если я ошибаюсь здесь, но вы говорите, что 'if (! Item1.same_isbn (item2)) {foo(); } 'никогда не выполняет' foo', когда item1 соответствует item2? –
Вы уверены, что 'item1.same_isbn (item2)' возвращает значение boolean (true или false)? Что вы получите, если вы делаете 'cout << item1.same_isbn (item2);' в строке перед оператором 'if'? – Gaurav
Он работает последовательно над каждым операндом, для которого он определен. В случае '! Item1.same_isbn (item2)', что является операндом для оператора '!'? Какой тип? Определяется ли '!' Над этим типом? –