|
-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375
|
|
Еще раз о бинарных и унарных операциях08.05.2019, 15:38. Показов 3900. Ответов 26
Метки нет (Все метки)
Ну да все мы знаем, что в C++ есть бинарные, унарные и даже тернарные операции.
Но вот почему то все учебники стыдливо обходят стороной такой вопрос, а вот скобки такие () и такие [] - это какая операция - унарная или бинарная? В списки приоритетов и ассоциативности они присутствуют, а вот насчет их унарности или бинарности - одна тишина. Может знающие люди прояснят ситуацию.
0
|
|
| 08.05.2019, 15:38 | |
|
Ответы с готовыми решениями:
26
Калькулятор бинарных и унарных операций
|
|
106 / 93 / 44
Регистрация: 26.07.2015
Сообщений: 197
|
|
| 08.05.2019, 15:47 | |
|
() и [] унарные, но всегда определяется как члены класса
0
|
|
|
"C with Classes"
|
|
| 08.05.2019, 15:48 | |
|
я не знающий, но думаю это унарные пост префиксные.
0
|
|
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|||||||
| 08.05.2019, 16:07 | |||||||
|
Оператор () же может иметь multiple subscription. Да и вообще они ни унарные, ни бинарные. Унарные операторы, это только эти:
0
|
|||||||
|
-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375
|
|
| 08.05.2019, 16:45 [ТС] | |
|
Ну хорошо, вот вы все высказались, что мол они унарные, тогда опять встает вопрос, где операция, а где операнд, ведь любая операция она должна стоять вроде бы либо слева, либо справа от своего операнда. Ну а что вы можете пояснить по этому случаю?
0
|
|
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||||||||||
| 08.05.2019, 17:04 | ||||||||||||
|
Вот так выглядит унарный оператор
0
|
||||||||||||
|
-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375
|
|
| 08.05.2019, 19:06 [ТС] | |
|
Короче я так понял, что ответа не дождусь.
Ну это вы по правилам перегрузки судите, тем не менее и там есть имключения, например с перегрузкой ->, но главное так и не понятно бинарные они или унарные. Между прочим, чего вас пытать то? Почему в учебниках об этом ничего не пишется?
0
|
|
|
"C with Classes"
|
|
| 08.05.2019, 20:24 | |
|
---
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|
| 08.05.2019, 20:46 | |
|
Просто Саша, унарные оперируют данными только одного объекта, дальше по этой логике...
0
|
|
|
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
|
||
| 08.05.2019, 21:12 | ||
|
Операция () формально тоже бинарная. Первый операнд у нее - указатель на функцию, второй - список аргументов. Но тут, как говорится - хоть горшком назови, только в печь не ставь!
0
|
||
|
-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375
|
|
| 08.05.2019, 21:25 [ТС] | |
|
Ну вот теперь пошли другие мнения, что мол они не унарные, а бинарные.
Короче, господа, где это выяснить то можно, может к самому Страурстпу обратиться? Тока не факт, что он сам знает и сможет дать правильный ответ.
0
|
|
|
"C with Classes"
|
||
| 08.05.2019, 21:36 | ||
|
http://eel.is/c++draft/#expr http://eel.is/c++draft/#over как я понял нет четкого разделения на унарные и бинарные операторы, в каком смысле ты их понимаешь
0
|
||
|
-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375
|
||
| 08.05.2019, 22:07 [ТС] | ||
|
Влпрос в другм, может скобки вообще вывести из аблицы приоритетов и ассоциативности. Ну нечего им там делать.
0
|
||
|
"C with Classes"
|
||
| 08.05.2019, 22:24 | ||
|
0
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||||
| 08.05.2019, 22:46 | ||||
|
Вообще эта классификация нужна лишь с одной целью: отличать операторы, которые могут использоваться в бинарном и унарном контекстах. Т.е. называя оператор + бинарным, стандарт обозначает, что данный оператор применяется для двух операндов, чтобы при описании отличать его от унарной формы оператора +. Т.е. это просто обозначение особенностей грамматики в тех или иных случаях, а не какая-то основополагающая классификация. А unary-operator из стандарта - это не классификация операторов, а обозначение части грамматики. И именно поэтому нет binary-operator, так как, собственно, его "binary" образуется соответствующим выражением (например, для * или /). Для [] и других - выражение формируется так.Вывод из этого только один. Бессмысленно составлять какие-либо таблицы, отличные от тех, что приведены в стандарте. В учебниках начального уровня такие таблицы приводят для простоты усваивания информации, но, при переходе на ступеньку выше в своих знаниях, от них нужно отказаться, в пользу прямого применения грамматики С++.
1
|
||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 08.05.2019, 23:10 | ||
->, эта характеристика просто не вводится. Собственно это все, что я хотел сказать постом выше.
0
|
||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
||
| 09.05.2019, 00:52 | ||
|
0
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||
| 09.05.2019, 01:59 | |||
Арность - да, это базовое понятие вообще, но в стандарте оно определяется грамматикой. Т.е. в стандарте - оно не базовое, а производное из грамматики - смотрите, Страуструп тоже об этом пишет. ТС же хочет поделить все операторы на бинарные, унарные, н-арные, именно так, как будто бы это самое базовое, что есть. Я же говорю, что арность - это свойство некоторых операторов, для которых грамматика описывает ее, для остальных это понятие не применяется. Именно поэтому в стандарте нет никаких таблиц арности или чего-то такого. ТС говорил об исключениях для некоторых операторов. Но исключения бывают только из общих правил. Здесь же все наоборот, общее правило - это грамматика, а арность - частный случай. В этом ключе никаких исключений нет. Есть несколько частных случаев, с арностью и без.
0
|
|||
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|||||
| 09.05.2019, 02:09 | |||||
.
0
|
|||||
| 09.05.2019, 02:09 | |
|
Помогаю со студенческими работами здесь
20
Если символ в данной строке встречается один раз, в конце строки добавлять ещё раз этот символ
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|