class Message {};
class BuildSandCastle : public Message {};
class DigHole : public Message {};
任意のオブジェクトが与えられた場合、ロジックを切り替えたり、メッセージ名ごとに1つの「do」関数を持つMessageHandlerクラスを作成したりせずにMessage*
、同じ名前の関数を呼び出すにはどうすればよいですか?doMessage()
編集:例:
class Sandbox
{
public:
void play(Message* m)
{
// call doBuildSandCastle
// or doDigHole based on m's type
}
void doBuildSandCastle();
void doDigHole();
};
申し訳ありませんが、以前ははっきりしていませんでした。
編集:
誰かが質問のこの列車の残骸を削除することはできますか?私は本当に、ポリモーフィズムのこれらすべての高校の授業を望んでいません。