#include <iostream>
class MyType
{
public:
MyType();
~MyType(){}
int getValue()const {
return myValue;
}
void setValue(int x) {
myValue = x;
}
void Increment() {
++myValue;
}
const MyType& operator++ ();
private:
int myValue;
};
MyType::MyType():myValue(0){}
const MyType& MyType::operator++()
{
++myValue;
return *this;
}
int main()
{
MyType i;
std::cout << "The value of i is " << i.getValue() << std::endl;
i.Increment();
std::cout << "The value of i is " << i.getValue() << std::endl;
++i;
std::cout << "The value of i is " << i.getValue() << std::endl;
MyType a = ++i;
std::cout << "The value of a: " << a.getValue();
std::cout << " and i: " << i.getValue() << std::endl;
return 0;
}
The value of i is 0
The value of i is 1
The value of i is 2
The value of a: 3 and i: 3