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

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

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

Как сделать перегрузку операции ">"? - C++

01.12.2011, 22:17. Просмотров 392. Ответов 4
Метки нет (Все метки)

Как сделать перегрузку операции ">"?
Например b>a, если b и а объекты разработанного класса.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2011, 22:17     Как сделать перегрузку операции ">"?
Посмотрите здесь:
C++ Не корректно считает перегрузку оператора "-" после "+"
как реализовать перегрузку опрератора "="? C++
C++ Как сделать execl("my", "arg", argv)?
C++ Написать перегрузку operator+() для класса "Массив"
C++ Написать перегрузку оператора "минус" для строк
Создать класс "Дата" с конструкторами, деструктором, указанными методами. Выполнить перегрузку указанных операторов C++
Как сделать константными значения "m" и "n" C++
Как сделать поле с "|", #, "-" и цифрами C++
Побитовые операции: как работает этот сдвиг вправо и логическое "И"(&) ? C++
Имеется строка "AAABBCCAA", нужно вывести на экран "3A2B2C2A", и так же сделать обратное действие C++
C++ Расскажите пожалуйста про оператор "class" из учебника понял только как создать, как сделать содержимое открытым/закрытым...
Как с использованием графических средств C++ сделать "движущийся самолёт"? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
5943 / 3380 / 336
Регистрация: 28.10.2010
Сообщений: 5,926
01.12.2011, 22:26     Как сделать перегрузку операции ">"? #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Int {
    int val;
public:
    Int(int v): val(v){
    }
    friend bool operator > (Int l, Int r) {
        return l.val > r.val;
    }
    friend bool operator < (Int l, Int r) {
        return l.val < r.val;
    }
    int getVal()const {
        return val;
    }
    void setVal(int v) {
        val = v;
    }
};
Сыроежка
Заблокирован
01.12.2011, 22:52     Как сделать перегрузку операции ">"? #3
Цитата Сообщение от YuraStyle Посмотреть сообщение
Как сделать перегрузку операции ">"?
Например b>a, если b и а объекты разработанного класса.
У вас две возможности. Либо сделать эту оператор-функцию членом класса, либо сделать ее глобальной функцией.

Если объявлять ее как член класса, то объявление будет выглядеть следующим образом

C++
1
2
3
4
5
6
class T
{
public:
   bool operator >( const T & ) const;
   ...
};
Если объявлять ее глобальной функцией, то ее объявление будет выглядеть следующим образом

C++
1
bool operator >( const T &x, const T &y );
YuraStyle
0 / 0 / 0
Регистрация: 04.11.2010
Сообщений: 9
01.12.2011, 23:15  [ТС]     Как сделать перегрузку операции ">"? #4
Цитата Сообщение от Петррр Посмотреть сообщение
int getVal()const { return val; } void setVal(int v) { val = v; }
а зачем эти методы?

Добавлено через 2 минуты
Цитата Сообщение от Сыроежка Посмотреть сообщение
bool operator >( const T & ) const;
т.е. дружественным метод делать не надо?
Сыроежка
Заблокирован
01.12.2011, 23:22     Как сделать перегрузку операции ">"? #5
Цитата Сообщение от YuraStyle Посмотреть сообщение

Добавлено через 2 минуты

т.е. дружественным метод делать не надо?
если эта функция - член класса, то очевидно никаких спецификаторов friend не нужно. Если это у вас глобальная функция, то все зависит от того, вовлечены ли в операццию сравнения закрытые члены класса и есть ли к доступу к ним открытый интерфейс. Если такого нет, то надо объявлять функцию дружественной.
Yandex
Объявления
01.12.2011, 23:22     Как сделать перегрузку операции ">"?
Ответ Создать тему
Опции темы

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