Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 233, средняя оценка - 4.98
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
22.01.2012, 12:48     бинарные и унарные операторы #1
Не могу понять в чем какие унарные а какие бинарные операторы в С++, может если не сложно, объяснить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 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
Если по название не понимаете, то модно ведь и загуглить.
Бинарные - два аргумента
Унарные - один.
cyberobot
 Аватар для cyberobot
15 / 15 / 1
Регистрация: 01.09.2011
Сообщений: 66
22.01.2012, 13:06     бинарные и унарные операторы #3
унарные операторы работают с одним операндом, а бинарные с двумя
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
22.01.2012, 13:19  [ТС]     бинарные и унарные операторы #4
Цитата Сообщение от cyberobot Посмотреть сообщение
унарные операторы работают с одним операндом, а бинарные с двумя
это так к приму как это делать
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
22.01.2012, 14:59     бинарные и унарные операторы #5
Sylar9, унарный минус: -2 (изменяет знак числа).
Бинарный минус: 2 - 1 = 1 (операция разности).
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
22.01.2012, 15:02  [ТС]     бинарные и унарные операторы #6
Цитата Сообщение от silent_1991 Посмотреть сообщение
Sylar9, унарный минус: -2 (изменяет знак числа).
Бинарный минус: 2 - 1 = 1 (операция разности).
то есть унарный слева, бинарный справа?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
22.01.2012, 15:24     бинарные и унарные операторы #7
Sylar9, нет. i++ - унарный оператор постинкремента. Как видно, тоже справа. У унарного оператора один операнд (в предыдущем посте 2, в этом i), у бинарного - два (в предыдущем посте 2 и 1).

Не по теме:

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

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

Не по теме:

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

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

Не по теме:

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

rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
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"; // явный вызов метода
}
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
22.01.2012, 16:54  [ТС]     бинарные и унарные операторы #12
Цитата Сообщение от silent_1991 Посмотреть сообщение
Sylar9,
a + b. Бинарный плюс. ДВА операнда. Не оператора (+), а операнда (a и b).
а все понял если мне надо сравнить два числа то это будет бинарный?, а как перегружать бинарные операторы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2012, 16:59     бинарные и унарные операторы
Еще ссылки по теме:

C++ Операторы цикла и операторы передачи управления
Операторы языка С++: операторы цикла (исправьте программу) C++
C++ Бинарные операторы

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
22.01.2012, 16:59     бинарные и унарные операторы #13
Sylar9, первая ссылка в гугле: http://programmersclub.ru/24/

 Комментарий модератора 
Тема закрыта.
Yandex
Объявления
22.01.2012, 16:59     бинарные и унарные операторы
Закрытая тема Создать тему
Опции темы

Текущее время: 07:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru