Если Вы знаете, как Ваш компилятор C++ искажает имена, да.
, Если, я не предполагаю, это - виртуальная функция. Но тогда, если Вы знаете, как Ваш компилятор C++ создает VTABLE...
Редактирование: смотря на другие ответы, я понимаю, что неправильно читал вопрос и думал, что это было о функциях членства, не членских данных. Однако точка все еще стоит: если Вы знаете, как Ваш компилятор размечает данные, то можно получить доступ к тем данным.
Я предполагаю, что это прямой перенос из Perl. Операторы или
и и
были добавлены позже в Perl 5 для конкретных ситуаций, когда был желателен более низкий приоритет.
Например, в Perl мы хотим, чтобы ||
имел более низкий приоритет, поэтому мы могли написать:
try to perform big long hairy complicated action || die ;
и быть уверенными, что ||
не собирался поглощать часть действия. Perl 5 представил или
, новую версию ||
, которая имеет низкий приоритет, именно для этой цели.
Пример на Ruby, где вы могли бы использовать или
], но не ||
:
value = possibly_false or raise "foo"
Если вы использовали ||
, это будет синтаксическая ошибка.
Разница в приоритете. ||
, &&
имеют более высокий приоритет, чем =
, но и
, или
имеют более низкий приоритет. Итак, пока вы можете сделать:
a = nil || 0
Вам нужно будет сделать:
a = (nil or 0)
, чтобы получить тот же эффект. Если вы это сделаете:
a = nil or 0
Результатом выражения все равно будет 0, но значение будет равно нулю.
У них очень низкий приоритет, поэтому операнды не нужно заключать в круглые скобки, как это иногда бывает с &&
и ||
.
Being able to control the precedence of your operators is sometimes useful, especially if you are concerned with readability -- extra parenthesis in conditional statements can sometimes obscure the actual logic.
To be frank, though, I think the reason Ruby has the boolean operator precedence levels it does stems mostly from the fact that Matz was a Perl programmer before he ever wrote Ruby, and borrowed much of the core syntax and operators from that language.
Я считаю, что идея состоит в том, чтобы получить их ниже операторы присваивания,