C++ STL 体系结构与内核分析(三)面向对象编程和泛型编程

OOP VS GP

OOP: Object-oriented programming 面向对象的编程 ,例如C++中的类和对象

GP:Generic Programming 泛型编程 ,例如C++中的模板

list不能使用sort排序是因为他的迭代器不同,sort函数只有randomAccessIterator才能如此操作。

OOP将 datas 和methods联系在一起;GP将 datas 和methods分开;这么做都是对具体的抽象。OOP的关键是类,类实例化出对象;GP的泛型是相对于强类型程序语言而定义的,GP 编程本身不需要指定类型的datas,实例化时需要datas,更像是methods的抽象。

注释:method->算法->比较大小->Operator Overloading

操作符重载和template模版

模版三大类:类模版、函数模版和成员模版

将这个类的类型,先不写出来,用一个T来代替,再使用的时候编译器进行推导得到输入的类型。

指定的类型,泛化之外写特化(指定类型就叫特化如上图所示)。上图蓝色区域就是用法。

泛化可以接收任何类型,特化只能指定类型,如上图所示。

偏特化绑定固定类型,如上图所示,vector<bool,Alloc>,锁定bool类型。图左边个数便特化

泛化接收任意type,如果接收的是指针T*,传进来的是*,图右边是范围的偏特化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值