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

Перегрузка префиксного инкремента - C++

Восстановить пароль Регистрация
 
Тангенс
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 121
24.05.2014, 21:23     Перегрузка префиксного инкремента #1
Как перегрузить префиксальный инкремент?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Horse{
    private:
        int x,y;
    public:
        Horse(void);
 
        void setX(int);
        void setY(int);
        int getX();
        int getY();
 
        bool equals(Horse&);
        bool step(int,int);
        void print(Horse&);
        void input(Horse&);
        
        ~Horse(void);
 
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Horse& operator++(Horse& h){
    h.setX(h.getX()+2);
    h.setY(h.getY()+1);
    return h;
}
 
void main(){
        Horse c1;
        cin>>c1;
    cout<<c1;
    c1++;
    cout<<c1;
    ++c1;
    cout<<c1;
}
Почему то перегружается как постфиксальный так и префиксальный, хотя по ходу я перегрузил только постфиксальный
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2014, 21:23     Перегрузка префиксного инкремента
Посмотрите здесь:

Секреты инкремента C++
C++ Перегрузка оператора инкремента/декремента через friend
C++ Перегрузка операции инкремента
Особенности инкремента C++
C++ Перегрузка постфиксной и префиксной операции инкремента
C++ Перегрузка префиксного оператора инкремента с возвращающим значением
Перегрузка инкремента ++ C++
Перегрузка операторов инкремента C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
24.05.2014, 21:36     Перегрузка префиксного инкремента #2
C++
1
2
3
4
5
Horse& operator++(Horse& h,int){// для префиксного инкремента добавляется фиктивный параметр int
    h.setX(h.getX()+2);
    h.setY(h.getY()+1);
    return h;
}
Но лучше сделать его членом класса
C++
1
2
3
4
5
6
Horse& operator++(int)
{
    this->setX(this->getX()+2);
    this->setY(this->getY()+1);
    return *this;
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,843
Записей в блоге: 2
Завершенные тесты: 1
24.05.2014, 21:42     Перегрузка префиксного инкремента #3
Цитата Сообщение от zss Посмотреть сообщение
для префиксного инкремента добавляется фиктивный параметр int
наоборот, фиктивный параметр добавляется для постфиксного инкремента
Yandex
Объявления
24.05.2014, 21:42     Перегрузка префиксного инкремента
Ответ Создать тему
Опции темы

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