Разница между логическими операторами в C и C++ заключается в некоторых особенностях:
- В C синтаксис условного оператора следующий: logical-OR-expression ? expression : conditional-expression. 14 В C++ — logical-OR-expression ? expression : assignment-expression. 14 Например, выражение e = a < d ? a++ : a = d в C будет воспринято по-разному: в C это синтаксическая ошибка, а в C++ — корректное выражение. 24
- В C++ логические операторы можно перегружать. 2 Однако перегрузка логических AND и OR не рекомендуется, так как перегруженные операторы ведут себя как обычные вызовы функций, то есть оцениваются оба их операнда, и они теряют свойство короткой оценки. 2
Кроме того, язык программирования C++ поддерживает все операторы своего прародителя C и дополнен новыми операторами и возможностями, например, операторами приведения типа. 4