That's prob one of the worst + operator overloads I've ever seen. You shouldn't be returning a reference and you shouldn't be modifying v1. Anyway the += operator only takes one parameter just like the = operator as you have the destination which should be "this".