Please edit your post and make sure your code is [code]between code tags[/code] so that it has syntax highlighting and line numbers, as well as proper indentation.
You defined your operator+ as a member function instead of a free function. Define it as a free function instead and it will allow implicit casts on both sides. http://stackoverflow.com/q/4622330/1959975