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

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

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

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

24.05.2014, 21:23. Просмотров 342. Ответов 2
Метки нет (Все метки)

Как перегрузить префиксальный инкремент?

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++
Допустим, что некий класс имеет в наличии методы пре(и пост-)фиксного инкрементов. Date&amp; Date::operator++(); Date...

Перегрузка инкремента ++ - C++
Не понимаю как вызвать перегрузку инкремента: void operator ++( int m ); в функции main,какой синтаксис. Я в main циклично ввожу числа и...

Перегрузка операторов инкремента - C++
Мне надо перегрузить инкримент, я пытался сделать постфиксный и + . Я вродебы сделал, но оно почему-то не выводит.( prog.h #pragma once...

Перегрузка операции инкремента - C++
Как известно, постинкремент возвращает r-value, а преинкремент - l-value. То есть: ++(++x); // допустимо (x++)++; // ошибка...

Перегрузка постфиксной и префиксной операции инкремента - C++
Здравствуйте! У меня возник вопрос: почему выводит разный результат, казалось бы, одинаковый код Вот здесь выводит как должно: ...

Перегрузка оператора инкремента/декремента через friend - C++
Нужно реализовать перегрузку унарного оператора через friend. Что я пытаюсь сделать: friend void operator -- ();//prototype void...

Особенности инкремента - C++
Здравствуйте!Возник вопрос касательно операции инкремента(++) допутим у нас есть код #include &lt;iostream&gt; int main() { ...

Секреты инкремента - C++
Пожалуйста!!! помогите! Умоляю!:help: i=5; j=(++i) + (++i): Чему равно j?; пожалуйста обьясните как это решается, ну или...

Ассоциативность инкремента декремента - C++
Всем привет. Вот такую табличку недавно нашел - http://ru.cppreference.com/w/cpp/language/operator_precedence Почему префиксный...

Переопределение операции инкремента - C++
Добрый вечер! Задачка простая и кода с примерами в сети куча, но меня волнует вопрос почему компилятор ругается на мой код: Myclass...

Оператор перегрузки инкремента - C++
Добрый день. Мне нужна оценка кода. Правильно - ли я все сделал? Подскажите пожалуйста. если что не так. /*Создать класс с перегрузкой...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,181
Завершенные тесты: 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
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,051
Записей в блоге: 3
Завершенные тесты: 1
24.05.2014, 21:42     Перегрузка префиксного инкремента #3
Цитата Сообщение от zss Посмотреть сообщение
для префиксного инкремента добавляется фиктивный параметр int
наоборот, фиктивный параметр добавляется для постфиксного инкремента
Ответ Создать тему
Опции темы

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