С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Arwel
9 / 9 / 0
Регистрация: 04.03.2013
Сообщений: 659
1

Оператор \ выражение - что же это такое на самом деле?

17.04.2016, 16:16. Просмотров 1088. Ответов 15
Метки нет (Все метки)

Какого ... выражение называют оператором?
0
Миниатюры
Оператор \ выражение - что же это такое на самом деле?  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2016, 16:16
Ответы с готовыми решениями:

Что такое string на самом деле?
Всем привет! Столкнулся с проблемой и никак не могу разобраться. Мне...

Что такое ссылка на самом деле?
Здравствуйте. Насколько я понимаю, ссылка - это переменная, которая на самом...

что же на самом деле делает strcpy?
вот такой пример #include <iostream> #include <string> using namespace std; ...

Передача массива в функцию - что на самом деле предается?
Имя массива это константный указатель. Когда мы передаем его в функциюvoid...

Число double 0.1 на самом деле не 0.1
Кто сталкивался с таким глюком, почему если я задаю double x=0.1; в дебаггере...

15
Arwel
9 / 9 / 0
Регистрация: 04.03.2013
Сообщений: 659
17.04.2016, 21:36  [ТС] 2
В данной ситуации std::cout << "Eter two nubmers:"; является выражением, а оператор тут <<. То есть, должно было быть так: первое выражение выводит сообщение для пользователя. Это сообщение, ...

Добавлено через 15 минут
Или, в первом выражении оператор выводит сообщение для пользователя. Это сообщение... - так было бы лучше.

Добавлено через 4 часа 41 минуту
Вообще, появилось предположение, что оператор сам по себе подразумевает выражение, ибо у него есть аргументы \ операнды один или более того. Скорее всего по этому и употребляют сленг в виде оператора, вместо выражения %)
0
Arwel
9 / 9 / 0
Регистрация: 04.03.2013
Сообщений: 659
19.04.2016, 11:30  [ТС] 3
Вопрос актуален, нужно разъяснение...
0
sourcerer
Модератор
Эксперт CЭксперт С++
4875 / 2061 / 325
Регистрация: 20.02.2013
Сообщений: 5,558
Записей в блоге: 24
Завершенные тесты: 1
19.04.2016, 11:56 4
Лучший ответ Сообщение было отмечено Arwel как решение

Решение

Цитата Сообщение от Arwel Посмотреть сообщение
Первый оператор выводит сообшение для пользователя.
В данном случае имеется в виду statement. В некоторых книгах этот термин переводят как "оператор", в других как "инструкция". Не стоит путать с термином operator, который тоже переводят как "оператор".
Выражение (expression) - это, по сути, инструкция (statement), только без точки с запятой.

Отличия:
C++
1
2
3
4
5
std::cout << "Hello World!\n"; // statement
 
int x = 10; // statement
 
x = x - 2; // statement
C++
1
2
3
int x = 10 // expression
 
x = x - 2 // expression
C++
1
2
3
4
5
<< // operator <<
 
* // operator *
 
+ // operator +
3
Arwel
9 / 9 / 0
Регистрация: 04.03.2013
Сообщений: 659
19.04.2016, 12:51  [ТС] 5
Цитата Сообщение от gru74ik Посмотреть сообщение
В данном случае имеется в виду statement. В некоторых книгах этот термин переводят как "оператор", в других как "инструкция".
Тогда всё-таки инструкция - будет как-то более правильно, нежели чем оператор.
Например тут тоже замечен эдакий "фейл":
0
Миниатюры
Оператор \ выражение - что же это такое на самом деле?  
Arwel
9 / 9 / 0
Регистрация: 04.03.2013
Сообщений: 659
19.04.2016, 12:52  [ТС] 6
С мои перфекционизмом только код писать ))))
0
CheshireCat
Эксперт С++
2913 / 1262 / 114
Регистрация: 27.05.2008
Сообщений: 3,464
19.04.2016, 13:00 7
Лучший ответ Сообщение было отмечено Arwel как решение

Решение

Цитата Сообщение от Arwel Посмотреть сообщение
Какого ... выражение называют оператором?
К сожалению, это дурная традиция в русских переводах зарубежной литературы по IT тематике. С незапамятных времен повелось так, что statement (предложение, утверждение), operator (оператор) и instruction (инструкция) переводчики чохом переводят как "оператор". Об истинном значении приходится догадываться по контексту. Или по оригиналу
1
Arwel
9 / 9 / 0
Регистрация: 04.03.2013
Сообщений: 659
19.04.2016, 13:11  [ТС] 8
Нужны спец. издания книг для параноиков-перфекционистов. Мое сознание не знает горя от такой логики в некоторых моментах.
0
Mr.X
Эксперт С++
3183 / 1710 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
19.04.2016, 13:57 9
Цитата Сообщение от Arwel Посмотреть сообщение
Нужны спец. издания книг для параноиков-перфекционистов. Мое сознание не знает горя от такой логики в некоторых моментах.
Ну дак книги надо нормальные читать. В книжке Страуструпа все нормально переведено. А это вы что за фолиант мучаете?
1
Arwel
9 / 9 / 0
Регистрация: 04.03.2013
Сообщений: 659
19.04.2016, 14:22  [ТС] 10
На данный момент я читаю это: http://www.ozon.ru/context/detail/id/26348781/ , аналогичное было и в Дейтелах, во всех изданиях, чёрт возьми.
За Страуструпа спасибо, но пока рано.

Добавлено через 20 минут
Цитата Сообщение от Mr.X Посмотреть сообщение
А это вы что за фолиант мучаете?
p.s. Это был ответ на данный вопрос.
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7092 / 3394 / 461
Регистрация: 04.12.2011
Сообщений: 9,447
Записей в блоге: 5
19.04.2016, 15:01 11
Лучший ответ Сообщение было отмечено Arwel как решение

Решение

Цитата Сообщение от Arwel Посмотреть сообщение
Какого ... выражение называют оператором?
Фраза "Первый оператор выводит сообщение..." абсолютно точна. Я не могу точно рассмотреть, но вижу там:
C++
1
std::cout<<"bla-bla-bla";
и это оператор.
Сам оператор (операция если уж точно) вставки "<<" возвращает ссылку на поток и, в совокупности с объектом cout и аргументом "bla-bla-bla", является выражением. Вообще, любое выражение можно оформить в виде оператора, так как выражение это всё что что-либо возвращает. Например, литерал 12345 возвращает rvalue 1234, а предложение 1234; это выражение "12345" + пустой оператор ";"
то есть 12345;//это оператор. Бессмысленный, но всё-таки оператор.
1
Arwel
9 / 9 / 0
Регистрация: 04.03.2013
Сообщений: 659
19.04.2016, 15:09  [ТС] 12
Цитата Сообщение от Mr.X Посмотреть сообщение
В книжке Страуструпа все нормально переведено
Четвёртое издание с переводом не нашёл, существует ли?
Взял пока на заметку третье.

Добавлено через 4 минуты
Цитата Сообщение от IGPIGP Посмотреть сообщение
в совокупности с объектом cout и аргументом "bla-bla-bla", является выражением
Стоп-стоп, выше мы выяснили, что это не выражение, а предложение \ утверждение, если бы отсутствовала ; , то было бы выражением.
0
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,804
Записей в блоге: 2
Завершенные тесты: 1
19.04.2016, 15:21 13
Цитата Сообщение от Arwel Посмотреть сообщение
Стоп-стоп, выше мы выяснили, что это не выражение, а предложение \ утверждение
expression-statement
C++
1
2
3
x = x-2; //statement (expression-statement)
//expression-statement имеет форму:
//expression;
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7092 / 3394 / 461
Регистрация: 04.12.2011
Сообщений: 9,447
Записей в блоге: 5
19.04.2016, 19:29 14
Цитата Сообщение от Arwel Посмотреть сообщение
Стоп-стоп, выше мы выяснили, что это не выражение, а предложение \ утверждение, если бы отсутствовала ; , то было бы выражением.
"Это" это что? У меня написано:
Цитата Сообщение от IGPIGP Посмотреть сообщение
Сам оператор (операция если уж точно) вставки "<<" возвращает ссылку на поток и, в совокупности с объектом cout и аргументом "bla-bla-bla", является выражением.
Это значит, что строка о которой речь, но без точки с запятой это выражение.
А операция вставки это операция. То, что при перегрузке операций используется ключевое слово operator, это не единичное явление в C++. В других языках подобных перлов тоже не мало. Ну и что? Кому-то нравится считать операцию оператором и всё бы ничего. Если бы ответить на вопрос: - "А что такое тогда оператор?". Хотите называть это стэйтментом или предложением? - Ради бога, но тогда кучу литературы и устоявшейся терминологии, - на помойку.
Лучше (имхо) считать операторами простые и блочные операторы. А операции с операторами не путать. Тогда всё останется как есть.
1
Arwel
9 / 9 / 0
Регистрация: 04.03.2013
Сообщений: 659
20.04.2016, 15:06  [ТС] 15
Цитата Сообщение от IGPIGP Посмотреть сообщение
"Это" это что?
Цитата Сообщение от IGPIGP Посмотреть сообщение
std::cout<<"bla-bla-bla";
Кликните здесь для просмотра всего текста
Набранное вами сообщение слишком короткое. Увеличьте ваше сообщение до 3 символов.
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7092 / 3394 / 461
Регистрация: 04.12.2011
Сообщений: 9,447
Записей в блоге: 5
20.04.2016, 16:29 16
Arwel, Вы о чём?
Цитата Сообщение от IGPIGP Посмотреть сообщение
оператор (операция если уж точно) вставки "<<" возвращает ссылку на поток и, в совокупности с объектом cout и аргументом "bla-bla-bla",
это словесное описание вот такой строки:
C++
1
std::cout<<"bla-bla-bla"
она, - выражение и в ней нет точки с запятой в отличие от оператора:
C++
1
std::cout<<"bla-bla-bla";
0
20.04.2016, 16:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2016, 16:29

На самом деле #define'а нету.
На самом деле #define нету. Вот например если мы напишем в c++ #define yes 1...

ошибки которых на самом деле нет
possible use of идентификатор before diffinotion(С++) у меня в компиляторе...

Что такое оператор блока?
Что такое оператор блока? поискал в гугле и не нашел(


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru