什么叫联编:
将一个调用函数者联结上正确的被调用函数,这一过程叫做函数联编,一般简称为联编。
C++的联编共分两种,就是静态联编和动态联编。
因此在未加 virtual 说明时,该函数是静态联编即被调函数和调用函数者的关系以及它们的内存地址
在编译时都已经确立好了,运行时不再发生变化。
这样的好处是速度快,因为运行的时候不用对各个对象的函数进行追踪,只需要传递参数,执行确定好的函数
并在函数调用完毕后清理内存即可。
动态:与其相反,动态联编就要牺牲掉一些速度,因为每个函数调用在运行前是不可确立的,要随着用户的操作来执行相应的函数
比如说在拳击游戏中用户按下一个出拳键,那么系统将根据用户选择的角色不同而采用不同的出拳(函数),虽然出拳这个动作是相同的
(函数名相同),但是他们产生的效果是不一样的,有的拳手力量大,有的拳手力量小(函数的功能不一,根据对象来定)。这个函数调用
就是不可预测的,因为你无法事先预测到用户选择的是哪个角色,这就要代码对每个角色进行追踪,并且在游戏运行时要时刻地判断该调
用哪个角色的拳头(合适的函数),然后再强调用它,虽然这样比较灵活,但是相应地也大大地增加了系统的开销。不过在这个游戏中使用动态
联编是个非常好的选择。
上面提到的代码事例:http://blog.youkuaiyun.com/liuguangsh/article/details/51489977