prefix and postfix operator overloading in c++ code example
Example 1: prefix and postfix operator overloading in c++
struct X
{
// prefix increment
X& operator++()
{
// actual increment takes place here
return *this; // return new value by reference
}
// postfix increment
X operator++(int)
{
X old = *this; // copy old value
operator++(); // prefix increment
return old; // return old value
}
// prefix decrement
X& operator--()
{
// actual decrement takes place here
return *this; // return new value by reference
}
// postfix decrement
X operator--(int)
{
X old = *this; // copy old value
operator--(); // prefix decrement
return old; // return old value
}
};
Example 2: operator ++ overloading c++
class Point
{
public:
Point& operator++() { ... } // prefix
Point operator++(int) { ... } // postfix
friend Point& operator++(Point &p); // friend prefix
friend Point operator++(Point &p, int); // friend postfix
// in Microsoft Docs written "friend Point& operator++(Point &p, int);"
};