by - 赵岩
先做个广告置入,如果喜欢这篇文章,你可以到zhaoyan.website/blog 去查看于此类似的C/C++文章。
这是一篇写软件的文章,但是很硬,提前预警一下,女生不要看!
所有写C++的文章,如果没有源代码都是在耍流氓。闲话不说, May the source be with you!
这是一个教科书般经典的例子。介绍C++的继承和多态。 这里唯一需要重点强调的是:对函数LetAnimalTalk和vector va 来说,我们可以想象他们是客户。[face=黑体]通过继承把变化封装到基类的后面,这样使用基类接口的客户就不需要改动![/face]对客户来说,无论基类后面怎么变化,你都影响不到我。例如,如果现在有一个经理狗加入了项目团队,你的LetAnimalTalk函数是不需要任何改变的。
So far so good! 现在看看引入模版后,发生了什么?
基本的应用场景是这样的。对于animal, 你可以用字符串来表示他的ID, 如果你想developer是不应该享有字符串名字的,那么你也可以用整型数来表示他的ID。上面整个的程序,如果你把main中换成下面的样子,除了猫会有点意见,其它一切都没有问题!