Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Arwel
9 / 9 / 0
Регистрация: 04.03.2013
Сообщений: 659
#1

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

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

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

Что такое string на самом деле? - C++
Всем привет! Столкнулся с проблемой и никак не могу разобраться. Мне необходимо из строки string str получить unsignet char* для...

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

что же на самом деле делает strcpy? - C++
вот такой пример #include <iostream> #include <string> using namespace std; int main () { string buff; buff += "what a...

Передача массива в функцию - что на самом деле предается? - C++
Имя массива это константный указатель. Когда мы передаем его в функциюvoid f1(int *iArray) f1 это происходит как pass by reference. В...

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

На самом деле #define'а нету. - C++
На самом деле #define нету. Вот например если мы напишем в c++ #define yes 1 #define no 0 то на самом деле мы получим int yes=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
gru74ik
Эксперт CЭксперт С++
4279 / 1867 / 198
Регистрация: 20.02.2013
Сообщений: 4,996
Записей в блоге: 22
19.04.2016, 11:56 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от 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
Эксперт С++
2899 / 1248 / 78
Регистрация: 27.05.2008
Сообщений: 3,414
19.04.2016, 13:00 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Arwel Посмотреть сообщение
Какого ... выражение называют оператором?
К сожалению, это дурная традиция в русских переводах зарубежной литературы по IT тематике. С незапамятных времен повелось так, что statement (предложение, утверждение), operator (оператор) и instruction (инструкция) переводчики чохом переводят как "оператор". Об истинном значении приходится догадываться по контексту. Или по оригиналу
1
Arwel
9 / 9 / 0
Регистрация: 04.03.2013
Сообщений: 659
19.04.2016, 13:11  [ТС] #8
Нужны спец. издания книг для параноиков-перфекционистов. Мое сознание не знает горя от такой логики в некоторых моментах.
0
Mr.X
Эксперт С++
3054 / 1699 / 265
Регистрация: 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
Комп_Оратор)
Эксперт по математике/физике
6911 / 3189 / 315
Регистрация: 04.12.2011
Сообщений: 8,828
Записей в блоге: 5
19.04.2016, 15:01 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от 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
Пришел
Эксперт CЭксперт С++
13771 / 7852 / 894
Регистрация: 27.09.2012
Сообщений: 19,269
Записей в блоге: 3
Завершенные тесты: 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
Комп_Оратор)
Эксперт по математике/физике
6911 / 3189 / 315
Регистрация: 04.12.2011
Сообщений: 8,828
Записей в блоге: 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
20.04.2016, 15:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2016, 15:06
Привет! Вот еще темы с ответами:

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

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

Что такое #, include, что это означает - C++
______

Что это такое??? - C++
virtual void Show(); virtual void Set(); friend ostream&amp; operator&lt;&lt;( ostream &amp; tmp , Medc &amp; obj); friend istream&amp; operator&gt;&gt;(...


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

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

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