なんでバトルクラスが敵クラスを管理しているのか謎ではあるが、それは置いていおいて。
まず今何が起こっているか整理する必要があるだろうね。

もし、プレイヤーと敵が一体ずつしか居ないなら、何も考えずにこう書けばよいよね。

battle( player, enemy );

超シンプルだよね。誰が読んでも誤解しようのない意図の明確なコードだよね。

それで、プレイヤーがパーティー制になって、敵が複数出てくる場合でも、
このスタイルは極力維持されるべきだよね。