return-by-value

Prefix/Postfix increment operators

I'm wanting to make sure I understand pass-by-value vs pass-by-reference properly. In particular, I'm looking at the prefix/postfix versions of the increment ++ operator for an object. Let's suppose we have the following class X: class X{ private: int i; public: X(){i=0;} X& operator ++ (){ ++i; return *this; } //prefix increment...