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

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

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

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

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

Как сделать перегрузку операции ">"?
Например b>a, если b и а объекты разработанного класса.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2011, 22:17     Как сделать перегрузку операции ">"?
Посмотрите здесь:

как реализовать перегрузку опрератора "="? C++
Как сделать константными значения "m" и "n" C++
C++ Как сделать "Старт", "Пауза", Стоп"?
Как сделать, так чтобы i и j можно было вводить самому "i" И "j" в цикле, есть программа C++
Создать класс "Дата" с конструкторами, деструктором, указанными методами. Выполнить перегрузку указанных операторов C++
C++ Как сделать execl("my", "arg", argv)?
C++ Как сделать так, чтобы scanf в переменную double мог считывать с клавиатуры не только "0,01", но и "0.01"
C++ Написать перегрузку operator+() для класса "Массив"
Как сделать так, чтобы введенное с клавиатуры слово "helllo" в памяти сохранялось в виде "Hello". C++
C++ Написать перегрузку оператора "минус" для строк
C++ Не корректно считает перегрузку оператора "-" после "+"
Error C2400: синтаксическая ошибка во встроенном коде на языке ассемблера в "код операции"; обнаружено "SHL" C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
 Аватар для Петррр
5927 / 3364 / 333
Регистрация: 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     Как сделать перегрузку операции ">"?
Ответ Создать тему
Опции темы

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