If you tried to take the overloading out off the class you'd get
error C2803: 'operator +' must have at least one formal parameter of class type
meaning that you can't overload an operator for two pointers. I think here temp3 = (*temp1)+temp2; should work (I'm not sure if you realy need the parentheses).
Anyway, I would advise against this approach. Pointers are pointers, not objects. If you want to overload operators for your class, those operators should work with objects unless you are specifically doing something related to pointers. If you're dealing with pointers, just put the * before them:
MyClass temp3 = *temp1 + *temp2;
Sure it's extra typing, but the code is much more clear and logical.