- •27. Робота із вказівниками
- •28. Основні і наслідувані атрибути.
- •29. Оператори й операції
- •Операция присваивания
- •Арифметические операции с присваиванием
- •Условная операция
- •Логические операции
- •Поразрядные логические операции
- •Операция проверки на равенство (неравенство)
- •Арифметические операции
- •Операции new и delete
- •Инкремент и декремент
- •30. Методи доступу до методів класу.
Операция присваивания
Левым операндом должна быть переменная. Нельзя записать:
5 = x;
Операнду находящемуся в левой части присваивается значение операнда стоящего в правой части операции:
x = 5;
cout << x; // на экран будет выведено: 5
Теперь в переменной x хранится значение 5. И его можно использовать.
Арифметические операции с присваиванием
Данные операции позволяют сократить код:
int x = 5;
x += 5; // две последние строки эквивалентны
x = x + 5;
Арифметические операции с присваиванием используются когда необходимо внести изменения в переменную используюя при этом значение, которое хранится в этой переменной в данный момент.
Условная операция
Условная операция ?: - единственная тернарная (то есть принимающая три операнда) операция в C++. Использовать её можно вместо простого ветвления if else.
x > y ? flag = 1 : flag = 0;
В первом операнде записывается условная операция. Если она возвращает единицу, то выполняется второй операнд, если ноль, то выполняется третий операнд. Приведённый код эквивалентен следующему:
if (x > y)
{
flag = 1;
}
else
{
flag = 0;
}
Логические операции
|| - логическое ИЛИ, && - логическое И. Операция логического И обладает более высоким приоритетом.
Данные операции используются для объединения нескольких условных операций:
if (x = y)
{
if (z > x)
{
}
}
Вот вместо этой чудовищной конструкции можно использовать следующую:
if ((x == y) && (x < z))
{
}
Только когда выполняются два условия, выполняется и тело ветвления.
Операция || работает аналогично:
if ((x == y) || (x < z))
{
}
Тело ветвления выполняется, когда выполняется любое из условий, т.е. если выполняется хоть одно условие.
Поразрядные логические операции
| ^ &. Здесь перечислены операции в порядке увеличения их приоритета.
Поразрядные логические операции в отличие от логических возвращают значения такого же типа, как и их операнды.
При выполнении этих операций вычисления ведутся над двоичным представлением операндов.
В комментариях указано как эти числа представлены в двоичном виде.
Операция проверки на равенство (неравенство)
Операции отношения могут возвращать только два значения: ноль (false - ложь) и единицу (true - истина).
== и !=. Данные операции возвращают булевы значения.
x == y;
Если x равен y, то операция вернёт единицу.
x != y;
Операция вернёт единицу если x не равен y.
Более высокий приоритет у операций < (меньше), <= (меньше или равно), > (больше), >= (больше или равно). Думаю тут всё понятно. Только запомните что в операциях больше или равно и меньше или равно сначала пишется угловая скобка, а затем знак равенства. Следущий знак в C++ не имеет смысла: =<.
Арифметические операции
Приоритет этих операции такой же как и в математике. Операции умножения, деления выполняются раньше чем операции суммы, вычитания.
Для операции умножения в C++ используется знак *.
Кроме того сюда же относится операция взятия остатка %. Данная операция делит первый операнд на второй и берёт остаток от деления:
int x = 3;
int y = 10;
int z;
z = x % y; // z = 3
Мы делим три на десять. Результат - 0,3. Отбрасываем ноль и берём остаток. Результат - 3.
Данная операция хоть и не так распространена как например другие арифметические операции, но тем не менее используется довольно часто. И иногда бывает просто незаменима.