When you make a Class Class::operator+(Class a); function does it need an assignment operator overloaded to work?
I mean using A = B + C // all of the same classes ?
Also, when using my own code with an overloaded operator, gcc tells me "declaration of 'operator+' as non-function" and for my overloaded constructs... it's ambigious(the default one that is)
No you don't. The default compiler generated one will work in this case since your member variables are just int. You will to write your own assignment operator in case that you need to do deep copy. It's still a good practice to write one yourself, however.