あと、 T t( u ) を T t = u の代わりに使うのが普通。
T t = u は operator = ではなくコピーコンストラクタによるので混乱させやすいし。