OOP模式,一个项目初始设计的时候,就好比是组一个汽车,需要各个的零件,然后每个零件相当于一个类。
从汽车,设计到道路,设计到城市,设计到国家等等。都是一步步的进阶。根据不同的需求进行设计最后升级设计。
有的零件不需要扩展和变化是直接用的,包的别人的库,那么就把那个库包起来,换个方便的接口,包库的时候需要先把别人的接口什么的看懂,拿到自己想要包的东西。 有的代码可能比较隐晦,比较深,那么就深的看一些。以及帮助文档例子等。
如果功能不够可以继承下来继承一些虚函数加一些自己的东西进去。
有的零件是需要以后扩展和变化的,而且相同点很多,那么就把提一个基类,然后把共同点给提取出来。随后需要扩展的就给继承和派生。 基类的提出更是易于管理,
比如说人种,老黑,黄钟,白种人,达到分类的效果。
然后就开始类的各种调用。最后生成结果成功。
模板就是把OOP 里面确定的数据类型给抽象化,让大家都能用各种数据类型来跑,只不过有个前提,这些数据类型比如有模板中抽象数据类型所拥有的部分。
写模板需要考虑共同的接口,以及共同的数据类型。
就好比是 一个交通工具
共同特征是: 运输()虚函数等 传递进去的数据类型: 可能是人,动物,货物等这些可以是抽象出具类型,就是模板参数。
然后各个函数继承下来,开始写自己的各自的功能。
模板仅仅是类的模板化 为了重复应用。
C++的类,抽象,继承派生,模板类,多态所有的东西就是为了让C++能够标准化代码,重复利用代码,交强的扩展功能,以及维护性,以及就如类这个字一样,分类的思想,清清楚楚整齐划一。
如果说 C语言是一个子弹,python java matlab等是机关枪,那么C++就好比是机器人 一旦维护完善。那么将是无人能敌、
添加什么东西都要以类的方式思考,即使这个东西很简单有其他现成的库。
拿jason举例