Yes, you also need to define this.
However, the general trick is to define operator+= and then implement operator+ in terms of this, something like this:
MyClass operator+ (MyClass lhs, const MyClass& rhs){ return lhs += rhs; }
If you do it the other way around (use + to implement + =), you get an unnecessary copy operation in the + = operator, which may be a performance sensitive issue i.
source share