可能是一个糟糕的头衔,我不知道怎么说出来。
我有一个面向对象设计类(C ++)的最终项目,任务是创建一个包含4个独立游戏的赌场计划。这是一个多人项目,所以我希望使用一个不需要由设计游戏类的每个人编辑的主文件。因此,例如,'main'文件将包含一个菜单,并提示您要播放哪个游戏。从那里,它将使用switch语句将控制转移到该游戏。
但是你会怎么做?这种想法有意义吗?
对于SlotMachine.play(),在对象内部发送控件是否有意义?
// Pseudo code
void launchSlotMachine()
{
SlotMachine SlotMachine;
SlotMachine.play();
}
int main()
{
int menuSelect = 0;
cout << "1. Slot Machine << endl;
// ...
cin >> menuSelect;
switch(menuSelect)
{
case 1:
launchSlotMachine();
break;
}
}
答案 0 :(得分:1)
一般的想法是将不同的游戏实现为具有运行功能的类。然后,您将使用switch语句控制它们。所以,对于类似的项目,你所做的是一般方法。
答案 1 :(得分:0)
另一种方法是使用查找表或带有函数指针的std :: map。
您的记录为<game name, pointer to game function>
。当找到包含游戏名称的记录时,您可以使用函数指针来激活名称。
StackOverflow中有很多例子,搜索&#34; C ++调度表函数指针&#34;。