1)情况说明:
假如 我想在我的游戏上 显示以恶搞菜单 然后这个菜单 显示1和2
要是我用鼠标点击1 ,就可以玩 贪吃蛇游戏
要是我用鼠标点击2,就可以玩 俄罗斯方块游戏
2)针对上面的情况,简单的思路 就是 我定义一个变量
要是我用鼠标 点击 1 那个变量就赋值为1,然后在每一个case的WM里面运行if(FX==1)的代码
要是我用鼠标 点击 2 那个变量就赋值为2,然后在每一个case的WM里面运行if(FX==2)的代码
~~~~~~~~~上面的思路,简单 可以实现 我想要的功能,但是 我要是很多游戏呢 ,就得加很多的 if判断,这样很麻烦
~~~~~~~~~~于是 有了下面的思路
3)这种情况类似于 C++的那个多态,就是说 你要你想自己设置选哪一套接口 来实现 后续通过你的选择 来执行不同的代码,但是一旦添加新的东西
我的代码没有改动 这个就是 一对多 就是多态的应用,虚函数的妙用,以后就是直接调用父类的接口,然后就可以实现子类的功能。
4)代码样例实现:
1 比如我有一个类 A 2 { 3 //他有函数 4 AA() 5 BB() 6 7 }
然后 我在我的switch中调用我的那个函数
1 switch(&Msg) 2 { 3 case WM_CREATE: 4 AA();//完成初始化工作的函数 5 break; 6 case WM_PAINT: 7 BB();//完成重绘工作 8 break; 9 10 }
然后 我有一个贪吃蛇的类 继承这个A类,那么完成的事和刚刚的那个A干的事一样:
那么 我的在回调函数WndProc函数中的switch代码没有变化,
贪吃蛇类干的事 就是重写AA()和BB()函数;