问题导入
首先我们描述一个背景,现在有Jack 和 Rose两个人,他们分别被要求在操场跑n圈,请算出他们每个人所需要的的时间是多少,假设Jack跑一圈要10分钟,Rose跑一圈15分钟(杠精勿扰 )
相信读者都能很快地给出这两个函数
到了这里,不妨拓展一下,假如有m个人,每个人跑一圈的时间可能相同,可能不同,也是分别被要求在操场跑n圈。两个人很好算,但是m个人 太多了 没有人愿意去算,所以现在请你用代码来计算m个人跑完n圈所需的时间
思路
有人说这很简单:
- 每个人写一个函数 然后在main里面调用不就行了
有人又不情愿了:
- 我写了这么多函数 还得一个一个调用 真麻烦 就不能写一个函数让他们自己输入自己的名字来显示吗
因此就有了函数指针
方案&个人理解
- 声明:仅为个人理解,还请各位大佬轻喷
既然已经将每个人的速度写成了函数,那么现在只需要写一个显示函数,通过不同的名字也就是不同的参数来调用各个函数,就引入了函数指针
更高理解:
- 除了可以用作上述“偷懒“的方案,这个程序还可以看作是m个人,通过同一服务器来进行数据交互。
- 而这个服务器是开放的,人数会不断增加,如果在早期将m个人的交互写成m个函数,或者通过m次函数调用,在后期人数增加的情况下,服务器的代码就需要不断地更新。
- 而假如服务器的源码不能修改,又要能够承受人数的增加,就需要一个“接口”,通过不同的参数来返回不同的方法