I\'ve heard it is used as overloaded operator+ for example
class MyClass { int x; public: MyClass(int num):x(num){} MyClass operator+(const MyCla
This is not overloading and using unary + .. You need to either make that a free function or make the member function take 0 arguments
class MyClass { int x; public: MyClass(int num):x(num){} MyClass operator+() const { return *this; } }; int main() { MyClass x = 42; + x; }