>>590
> これがもしFightという関数になったとき
> Dog.Fight(Cat);
> Cat.Fight(Dog);
> Fight(Dog,Cat);
> これでいいたいことはうっすらわかりましたかね?

何も言いたいことがわかんねぇwww

例えば、「戦士.戦う(スライム)」 だったら普通に武器で攻撃するだろうけど
「戦士.戦う(メタルスライム)」 だったら、聖水を使うかもしれない。

「魔法使い.戦う(フレイム)」なら弱点のヒャド系魔法使うかもしれないし、
「フレイム.戦う(魔法使い)」なら火炎の息を吐くかも知れないし。

自分が今どんな攻撃ができるかは、自分しか知らないだろ。

「戦う(魔法使い, フレイム)」 とか言われたって、
戦う関数は何すればいいか分かんねーよw