OOP: Object-oriented programming 面向对象的编程 ,例如C++中的类和对象
GP:Generic Programming 泛型编程 ,例如C++中的模板
OOP将 datas 和methods联系在一起;GP将 datas 和methods分开;这么做都是对具体的抽象。OOP的关键是类,类实例化出对象;GP的泛型是相对于强类型程序语言而定义的,GP 编程本身不需要指定类型的datas,实例化时需要datas,更像是methods的抽象。
注释:method->算法->比较大小->Operator Overloading
关于operator overloading,课件上讲解了member function和non-member function两种操作符
----------------------------------------------------------------------------------------------
分配器:allocators ,每个容器都有一个默认的分配器。
参考标准库的课件可知,分配器默认是一个类模板,间接通过malloc 和delete管理内存。
-----------------------------------------------------------------------------------------------
GNU2.9 和GNU4.9的STL库在实现方式有很大区别,分配器的分配策略,每个容器的实现方法。容器是一个类模板。
由课件的容器list可知,容器中typedef了iterator,这样,每个容器都有自己的智能指针,这样就定义了特定类型的索引方式(重载操作符)
----------------------------------------------------------------------------------------
想要看C++大型项目的源码;
网友评论