class hoge
{
public:
hoge& operator +=( const hoge& );
hoge operator +( const hoge& r ) const
{ return hoge(*this) += r; }
};

とか書いてたけど、ひょっとしてだめ?