I have this piece of C++ code to overload the pre-increment and post-increment operators. The only difference between those methods is the number of their arguments.
I want to know how C++ understands which method (pre-increment or post-increment) it should call when running y=++x and z=x++ commands.
class location { private: int longitude, latitude; public: location(int lg = 0, int lt = 0) { longitude = lg; latitude = lt; } void show() { cout << longitude << "," << latitude << endl; } location operator++(); // pre-increment location operator++(int); // post-increment }; // pre-increment location location::operator++() { // z = ++x; longitude++; latitude++; return *this; } // post-increment location location::operator++(int) { // z = x++; location temp = *this; longitude++; latitude++; return temp; } int main() { location x(10, 20), y, z; cout << "x = "; x.show(); ++x; cout << "(++x) -> x = "; x.show(); y = ++x; cout << "(y = ++x) -> y = "; y.show(); cout << "(y = ++x) -> x = "; x.show(); z = x++; cout << "(z = x++) -> z = "; z.show(); cout << "(z = x++) -> x = "; x.show(); }