在游戏中,很多时候我们要求不同的对象做相同的工作,例如CCLabelTTF和CCLabelTTFColor都继承自CCLabelProtocol,CCLabelProtocol就是一个接口类,只有setString()和getString()两个纯虚函数,派生类CCLabelTTF和CCLabelTTFColor对他们进行复写之后都可以完成自己的功能,当父类的指针指向子类时就可以调用子类的同名函数,这就是c++多态的体现,而真正的原理就是虚函数列表。
一、虚函数列表
首先我们先看两张图,感受一下实现的机制。
1、无复写虚函数:
存储原理:
2、有复写函数:
存储原理: