Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 7
На сайте нет зарегистрированных пользователей

Пользователей: 13,372
новичок: vausoz
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

База данных склада на Delphi + Схема БД
Обратное размещение элементов ЭВС на Delphi + Пояснительная записка
Моделирование информационно-поисковой библиографической системы на gpss ...

Выражения: операторы языка C++
В этой статье блога описываются операторы языка C++. Мы используем обозначения, которые считаем мнемоническими, например: m — для имени члена; T — для имени типа; p — для выражения, создающего указатель; x — для выражения; v — для выражения lvalue; lst — для списка аргументов.

Также вам может показаться, что такая тема как

http://www.complat.ru/rus/services/line
никак не связана и даже не тематична с программированием. Хотя, может быть и связана.
В любом случае все-таки зайдите на сайт complat.ru
Тема провести интернет там представлена весьма широко.


Типы результатов арифметических операций определяются обычными арифметическими преобразованиями. Описания, приведенные тут, касаются только встроенных операторов, а не операторов, которые программист может определить самостоятельно, хотя, определяя свои собственные операторы, следует придерживаться семантических правил, установленных для встроенных операторов.
Разрешение области видимости
N :: m m находится в пространстве имен N; N — имя пространства имен или класса
:: m m находится в глобальном пространстве имен
Обратите внимание на то, что члены могут быть сами вложенными, поэтому можем получить такие выражения, как N::C::m).
Постфиксные выражения
x.m
p->m
p[x]
f(lst)
T(lst)
v++
typeid(x)
Доступ к члену класса; x должен быть объектом класса Доступ к члену класса; p должен быть указателем на объект класса; эквивалентно (*p).m Индексирование; эквивалентно *(p+x)
Вызов функции; вызов функции f со списком аргументов lst Создание: создание объекта T со списком аргументов lst (Постфиксная) инкрементация; значение v++ равно значению v до инкрементации
(Постфиксная) декрементация; значение v— равно значению v до инкрементации
Идентификация типа объекта x во время выполнения программы
Идентификация типа T во время выполнения программы Приведение объекта x к типу T с проверкой во время выполнения программы
Приведение объекта x к типу T с проверкой во время компиляции программы
Непроверяемое преобразование, которое сводится к добавлению или удалению спецификатора const у типа объекта x, чтобы получить тип T
reinterpret_cast(x) Непроверяемое приведение объекта x к типу T с помощью
иной интерпретации битовой комбинации объекта x
Оператор typeid и его применения не описаны в этой книге; его детали можно найти в более сложных учебниках. Обратите внимание на то, что операторы приведения не модифицируют свой аргумент. Вместо этого они создают результат своего типа, который каким-то образом соответствует значению аргумента
Унарные выражения
typeid(T)
dynamic_cast(x) static_cast(x) const cast(x)
sizeof(T)
sizeof(x)
Размер типа T в байтах
Размер типа, к которому относится объект x (в байтах)
Окончание таблицы
Унарные выражения
++v (Префиксная) инкрементация; эквивалентно v+=1
—v (Префиксная) декрементация; эквивалентно v-=1
~x Дополнение к x; побитовая операция
!x Отрицание x; возвращает true или false
&v Адрес переменной v
*P Содержание объекта, на который ссылается указатель p
new T Создает объект типа T в свободной памяти
new T(lst) Создает объект типа T в свободной памяти и инициализирует его
объектом lst
new(lst) T Создает объект типа T в области памяти, заданной аргументом lst
new(lst) T(lst2) delete p Создает объект типа T в области памяти, заданной аргументом lst,
и инициализирует его аргументом lst2
Удаляет объект, на который ссылается указатель p
delete[] p Удаляет массив объектов, на который ссылается указатель p
(T)x Приведение в стиле языка C; приведение объекта x к типу T
Объекты, на которые ссылается указатель p в инструкциях delete p и delete[] p, должны быть размещены в памяти с помощью оператора new. Следует подчеркнуть, что выражение (T)x является менее конкретным и, следовательно, более уязвимым для ошибок, чем более конкретные операторы приведения.
Выбор члена класса
x.*ptm Член объекта x, определенный указателем на член класса ptm
p->*ptm Член *p, идентифицированный указателем на член класса ptm
Эти инструкции в книге не рассматриваются; обратитесь к более сложным учебникам.
Мультипликативные операторы
x*y Умножение x на y
x/y Деление x на y
x%y Деление по модулю (остаток от деления) x на y (не для типов с плавающей точкой)
Если y==0, то результат выражений x/y и x%y не определен. Если переменная x или y является отрицательной, то результат выражения x%y является отрицательным.
Аддитивные операторы
x+y Сложение x и y
x-y Вычитание y из x
Операторы сдвига
x< x>>y Сдвигает биты x вправо на y позиций
Для встроенных типов операторы >> и << означают сдвиг битов. Если левым операндом является объект класса iostream, то эти операторы используются для ввода и вывода.
x x<=y x меньше или равно y
x>y x больше y
x>=y x больше или равно y
Результатом оператора сравнения является значение типа bool.
Операторы равенства
x==y x равно y; возвращает значение типа bool
x!=y x не равно y
Обратите внимание на то, что x!=y эквивалентно !(x==y). Результат оператора равенства имеет тип bool.
Побитовое “и”
x&y побитовое “и” чисел x и y
Оператор & (как и операторы л, |, ~, >> и <<) возвращает комбинацию битов. Например, если переменные a и b имеют тип unsigned char, то результат выражения a&b имеет тип unsigned char, в котором каждый бит является результатом применения оператора & к соответствующим битам переменных a и b.
Побитовое исключительное “или” (хог)
x^y Побитовое исключительное “или” переменных x и y
Побитовое “или”
x|y Побитовое “или” переменных x и y
Логическое “и”
x&&y Логическое “и”; возвращает значения true и false; вычисляет значение
y, только если x имеет значение true
A.5. ВЫРАЖЕНИЯ
1097
Логическое “или”
x||y Логическое “или”; возвращает значения true и false; вычисляет значение
у, только если x имеет значение false
Условное выражение
x?y:z Если x равно true, то результат равен у; иначе — равен z
Рассмотрим пример. template T& max(T& a, T& b) { return (a>b)?a:b; }
Присваивание
v=x Присваивает x переменной v; результат равен v
v*=x Аналог v=v*(x)
v/=x Аналог v=v/(x)
v%=x Аналог v=v%(x)
v+=x Аналог v=v+(x)
v-=x Аналог v=v-(x)
v>>=x Аналог v=v>>(x)
v<<=x Аналог v=v<<(x)
v&=x Аналог v=v&(x)
A
v =x Аналог v=v^(x)
v|=x Аналог v=v|(x)
Фраза “аналог v=v*(x) ” означает, что значение выражения v*=x совпадает со значением выражения v=v*(x), за исключением того, что значение v вычисляется только один раз. Например, выражение v[++i]*=7+3 означает (++i, v[i]=v[i]*(7+3)), а не (v[++i]=v[++i]*(7+3)) (которое может быть неопределенным;.
Выражение throw
throw x Генерирует значение x
Результат выражения throw имеет тип void.
Выражение “запятая”
x,y
Выполняет инструкцию x, а затем у. Результатом является результат инструкции у
Каждая таблица содержит операторы, имеющие одинаковый приоритет. Операторы в более высоко расположенных таблицах имеют более высокий приоритет по сравнению с операторами, расположенными ниже. Например, выражение a+b*c означает a+(b*c), а не (a+b)*c, поскольку оператор * имеет более высокий приоритет по сравнению с оператором +. Аналогично, выражение *p++ означает *(p++), а не (*p)++. Унарные операторы и операторы присваивания являются правоассоциативными (right-associative); все остальные — левоассоциативными. Например, выражение a=b=c означает a=(b=c), а выражение a+b+c означает (a+b)+c.

Lvalue — это объект, допускающий модификацию. Очевидно, что объект lvalue, имеющий спецификатор const, защищен от модификации системой типов и имеет адрес. Противоположностью выражения lvalue является выражение rvalue, т. е. выражение, идентифицирующее нечто, что не может быть модифицировано или не имеет адреса, например, значение, возвращаемое функцией (&f(x) — ошибка, поскольку значение, возвращаемое функцией f(x), является значением rvalue).
Опубликовал katy May 01 2015 12:02:29 · 0 Комментариев · 2114 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Керниган Б.В., Ри...
HTMLredaktor
Андрей Боровский....
Xrumer 4 Platinum...
Пример создания W...
Использование Lis...
CS:Source - монит...
XPcontrol
База Allsubmitter...
Пользовательская...
AddPage [Исходник...
Киллер окон
isoCanvas (Редакт...
Delphi 2005 Учимс...
База Allsubmitter...
UmEdit
Библия хакера 2 К...
Geo-Whois
База каталогов ( ...
Измерение тактово...

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97838
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14192
Borland Delphi ... 10292
Turbo Pascal fo... 7374
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Интервью: Юрий Кру...
Игры для взрослых
Краткий обзор язык...
Добавление кода дл...
Подготовка модуля ...
Необходимость испо...
4.2. АНТИПАТТЕРН: ...
• Открыть в службе...
Проблемы, связанны...
Казино Эльдорадо
Делай уроки сам
Г-слоя в физике пл...
Глава 25. Когда...
Процедура DrawPoly...
Как научиться игра...
• Кэширование.
Казино
Конфигурируя бранд...
Организация запрос...
• При определении ...
Краткие выводы по ...
Таким образом гара...
Коррекция результа...
Заказчик на месте ...
Информация о дизай...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?