2016-06-20 4 views
-1

У меня проблемы с унарным перезагруженным оператором.Унарная перегрузка оператора C++

Вот мой код ...

#include<iostream> 

using namespace std; 

class Index{ 

     int value; 
public: 
    Index() : value(0) { } 
    int GetIndex() const 
    { 
     return value; 
    } 
    void operator ++() 
    { 
     value++; 
    } 
}; 
int main() 
{ 
    Index idx1,idx2; 

    ++idx1; 
    idx2++; 
    idx2++; 

    cout << "idx1.value:" << idx1.GetIndex() << endl; 
    cout << "idx2.value:" << idx2.GetIndex() << endl; 


} 

Оператор idx2 ++ дает мне компиляции error.The префикс однако т.е. ++ idx1 работает книгу properly.The Я имею в виду, говорит, что оба должны дают тот же результат ... то есть член значения должны получить увеличиваются на 1.

Почему я сталкиваюсь с этой проблемой ?? ... в среде IDE я использую Visual Studio 2015.

+0

[пример здесь] (https://msdn.microsoft.com/en-us/library/f6s9k9ta.aspx) может помочь –

ответ

2

Префикс и постфикс ++ - два отдельных оператора. C++ дифференцирует их, взяв параметр dummy int для postfix и без параметра для префикса.

+0

Спасибо ... Я получил его сейчас – user5422891

Смежные вопросы