黒魔術でもなんでもなく普通に各パーツと中間の合体状態をクラスとして定義してoperator+をオーバーロードするだけじゃんか