class Message {};
class BuildSandCastle : public Message {};
class DigHole : public Message {};
给定一个任意Message*
对象,我怎样才能调用同名函数doMessage()
而不求助于切换逻辑或创建一个 MessageHandler 类,该类对每个消息名称都有一个“do”函数?
编辑:例如:
class Sandbox
{
public:
void play(Message* m)
{
// call doBuildSandCastle
// or doDigHole based on m's type
}
void doBuildSandCastle();
void doDigHole();
};
抱歉我之前没有说清楚。
编辑:
有人可以删除这个问题的火车残骸吗?我真的不想要所有这些关于多态性的高中课程。