>>74
自力でそういうことを考えたのは偉いと思う。
だけど、C++の良書にはそういうテクニックは普通に
載ってる。買って読もうな(推薦図書スレに行くべし)。

ちなみに、ホントに交換したいなら、

void Hoge::swap(const HOGE& hoge);

というメンバ関数にするのが一般的。