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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 233, средняя оценка - 4.98
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,944
Записей в блоге: 1
#1

бинарные и унарные операторы - C++

22.01.2012, 12:48. Просмотров 35419. Ответов 12
Метки нет (Все метки)

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

Бинарные операторы - C++
Почему бинарные операторы являются внешними функциями (операторами) по отношению к классу? Почему запрещают создавать операторные функции...

Дружественные бинарные операторы - C++
//прототипы внутри класса friend bool operator==(const Polynomial&, const Polynomial&); Polynomial &operator=(const Polynomial&); ...

Унарные операции - C++
Всем доброго времени суток. Вот у меня следующая проблема: проиллюстрировать возможности унарных операций. Буду благодарен любой помощи в...

С++.Операторы в С++: условные операторы, операторы break и continue - C++
Выяснить, пересекаются ли параболы у=аx2+bx+с и у=dx2+ex + f. При положительном ответе найти точки пересечения.

Определить и вывести количество дней между двумя датами (логические операторы и операторы ветвлений) - C++
Задачка Пользователь вводит две даты (день, месяц, год в виде целых чисел). Необходимо определить и вывести количество дней между этими...

«Языки и технологии программирования» «Операторы цикла. Условные операторы» - C++
Не получается сделать что бы программа выводила все значения в промежутке, она выводит только одно. условия | ((z^3)+sin...

12
go
Эксперт С++
3586 / 1366 / 129
Регистрация: 16.04.2009
Сообщений: 4,528
22.01.2012, 13:05 #2
http://ru.wikipedia.org/wiki/%D0%91%...86%D0%B8%D1%8F
http://ru.wikipedia.org/wiki/%D0%A3%...86%D0%B8%D1%8F
Если по название не понимаете, то модно ведь и загуглить.
Бинарные - два аргумента
Унарные - один.
0
cyberobot
15 / 15 / 1
Регистрация: 01.09.2011
Сообщений: 66
22.01.2012, 13:06 #3
унарные операторы работают с одним операндом, а бинарные с двумя
1
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,944
Записей в блоге: 1
22.01.2012, 13:19  [ТС] #4
Цитата Сообщение от cyberobot Посмотреть сообщение
унарные операторы работают с одним операндом, а бинарные с двумя
это так к приму как это делать
0
silent_1991
Эксперт С++
4993 / 3051 / 149
Регистрация: 11.11.2009
Сообщений: 7,038
Завершенные тесты: 1
22.01.2012, 14:59 #5
Sylar9, унарный минус: -2 (изменяет знак числа).
Бинарный минус: 2 - 1 = 1 (операция разности).
0
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,944
Записей в блоге: 1
22.01.2012, 15:02  [ТС] #6
Цитата Сообщение от silent_1991 Посмотреть сообщение
Sylar9, унарный минус: -2 (изменяет знак числа).
Бинарный минус: 2 - 1 = 1 (операция разности).
то есть унарный слева, бинарный справа?
0
silent_1991
Эксперт С++
4993 / 3051 / 149
Регистрация: 11.11.2009
Сообщений: 7,038
Завершенные тесты: 1
22.01.2012, 15:24 #7
Sylar9, нет. i++ - унарный оператор постинкремента. Как видно, тоже справа. У унарного оператора один операнд (в предыдущем посте 2, в этом i), у бинарного - два (в предыдущем посте 2 и 1).

Не по теме:

Вы специально постите на форум тонны идиотских тем, ответы на которые есть по любой ссылке соответствующего запроса в любом поисковике и в любой книге по любому языку программирования, чтобы позлить людей?

0
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,944
Записей в блоге: 1
22.01.2012, 15:42  [ТС] #8
Цитата Сообщение от silent_1991 Посмотреть сообщение
Sylar9, нет. i++ - унарный оператор постинкремента. Как видно, тоже справа. У унарного оператора один операнд (в предыдущем посте 2, в этом i), у бинарного - два (в предыдущем посте 2 и 1).

Не по теме:

Вы специально постите на форум тонны идиотских тем, ответы на которые есть по любой ссылке соответствующего запроса в любом поисковике и в любой книге по любому языку программирования, чтобы позлить людей?

Блин не как не могу вехать, бинарный типа два оператора должно быть так что ли?
0
silent_1991
Эксперт С++
4993 / 3051 / 149
Регистрация: 11.11.2009
Сообщений: 7,038
Завершенные тесты: 1
22.01.2012, 15:44 #9
Sylar9,
a + b. Бинарный плюс. ДВА операнда. Не оператора (+), а операнда (a и b).
0
go
22.01.2012, 15:51
  #10

Не по теме:

Цитата Сообщение от Sylar9 Посмотреть сообщение
бинарный типа два оператора должно быть так что ли?
Вы слово бинарный понимаете? Бинарный - двоичный и т.д.

0
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
22.01.2012, 16:08 #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
 
class integer
{
    private:
        int value_;
 
    public:
        integer(int value)
            : value_(value)
        {
 
        }
 
        int get_value() const
        {
            return value_;
        }
};
 
//------------- унарный минус
int operator-(const integer& lhs)
{
    return -lhs.get_value();
}
 
//------------- бинарный бинус
int operator-(const integer& lhs, const integer& rhs)
{
    return lhs.get_value() - rhs.get_value();
}
 
//-------------
int main()
{
    integer a = 15;
    integer b = 10;
 
    // унарный минус
    std::cout << -a << "\n";           // обычная форма
    std::cout << operator-(a) << "\n"; // явный вызов функции
 
    // бинарный минус
    std::cout <<  a - b << "\n";          // обычная форма
    std::cout << operator-(a, b) << "\n"; // явный вызов функции
}
Если операторы перегружены как члены класса, то операнд стоящий слева в списке параметров не указывается, его роль выполняет вызывающий объект.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
 
class integer
{
    private:
        int value_;
 
    public:
        integer(int value)
            : value_(value)
        {
 
        }
 
        // унарный минус
        int operator-() const
        {
            return -value_;
        }
 
        // бинарный минус
        int operator-(const integer& rhs) const
        {
            return value_ - rhs.value_;
        }
};
 
//-------------
int main()
{
    integer a = 15;
    integer b = 10;
 
    // унарный минус
    std::cout << -a << "\n";            // обычная форма
    std::cout << a.operator-() << "\n"; // явный вызов метода
 
    // бинарный минус
    std::cout <<  a - b << "\n";         // обычная форма
    std::cout << a.operator-(b) << "\n"; // явный вызов метода
}
1
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,944
Записей в блоге: 1
22.01.2012, 16:54  [ТС] #12
Цитата Сообщение от silent_1991 Посмотреть сообщение
Sylar9,
a + b. Бинарный плюс. ДВА операнда. Не оператора (+), а операнда (a и b).
а все понял если мне надо сравнить два числа то это будет бинарный?, а как перегружать бинарные операторы
0
silent_1991
Эксперт С++
4993 / 3051 / 149
Регистрация: 11.11.2009
Сообщений: 7,038
Завершенные тесты: 1
22.01.2012, 16:59 #13
Sylar9, первая ссылка в гугле: http://programmersclub.ru/24/

 Комментарий модератора 
Тема закрыта.
0
22.01.2012, 16:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2012, 16:59
Привет! Вот еще темы с ответами:

Операторы присваивания, ввода- вывода. Операторы ветвления, выбора - C++
Даны два ненулевых числа. Найти их сумму, разность, произведение, частное, остаток и целую часть от деления. Добавлено через 8 часов...

Операторы языка С++: операторы цикла (исправьте программу) - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;cmath&gt; using namespace std; int main() { int a,n; float y,x; cout&lt;&lt;...

Операторы цикла и операторы передачи управления - C++
Вычислить сумму ряда S с погрешностью эпсилон, задаваемой с клавиатуры. Вывести количество итераций, сделанных при вычислении. Если...

Операторы ветвления и операторы передачи управления - C++
1. Вычислить значения функции F при вещественных a, b, c, x, вводимых с клавиатуры. 2. Составить программу, которая печатает...


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

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

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