C++学习著作!(——本人已经走了弯路,大家吸取教训)

C++语言的发展历程可划分为三个阶段:80年代至1995年的面向对象编程阶段,1995年至2000年的泛型编程阶段,以及2000年至今的模板元编程阶段。期间,伴随STL、Boost库的引入以及模板元编程的兴起,C++逐渐成为主流编程语言中最为复杂的一种。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发展历程

C++语言发展大概可以分为三个阶段:
  第一阶段从80年代到1995年。这一阶段C++语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额;OO思维。

                《C++程序设计教程》(钱能著),《C++   Primer中文版》,《Effective   C++》、《More   Effective   C++》,《设计模式》等等


  第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C++中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C++受到了一定的冲击;泛型编程没有标准定义。泛型思维。

           代码与所处理的对象类型彼此独立;因此,将有泛型算法,泛型对象等等;conceptmodel,refinement泛型思想的关键。

  1. refinement是两组types直接的关系。如Forward iterator和Input iterator之间的关系

  2. types即concept。如Forwarditerator,Unary Function,Forward Container等等

  3. modeling是一个type和一组types的关系。如char *是Input iterator的一个model。

  4. inheritance是两个type之间的关系。

                《Effective   STL》,《C++template全览》,《泛型编程与STL》等等


  第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C++出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C++已经成为当今主流程序设计语言中最复杂的一员。模板元编程(http://baike.baidu.com/view/1556579.htm)(Template Metaprogramming)更准确的含义应该是“编‘可以编程序的’程序”,而模板元程序(Template Metaprogram)则是“‘可以编程序的’程序”。也就是说,我们给出代码的产生规则,编译器在编译期解释这些规则并生成新代码来实现我们预期的功能。

                《C++设计新思维——泛型编程与设计模式之应用》等等

 

 

 

 

 

 

1. Boost 库

Boost 库来自于由 C++ 标准委员会类库工作组成员发起,致力于为 C++ 开发新的类库的 Boost 组织。虽然该库本身并不是针对多线程而产生,但是发展至今,其已提供了比较全面的多线程编程的 API 支持。 Boost 库对于多线程支持的 API 风格上更类似于 Linux 的 Pthread 库,差别在于其将线程,互斥锁,条件等线程开发概念都封装成了 C++ 类,以方便开发调用。 Boost 库目前对跨平台支持的很不错,不仅支持 Windows 和 Linux ,还支持各种商用的 Unix 版本。如果开发者想使用高稳定性的统一线程编程接口减轻跨平台开发的难度, Boost 库将是首选。

2. ACE

ACE 全称是 ADAPTIVE Communication Environment,它是一个免费的,开源的,面向对象的工具框架,用以开发并发访问的软件。由于 ACE 最初是面向网络服务端的编程开发,因此对于线程开发的工具库它也能提供很全面的支持。其支持的平台也很全面,包括 Windows,Linux 和各种版本 Unix 。 ACE 的唯一问题是如果仅仅是用于线程编程,其似乎显得有些过于重量级。而且其较复杂的配置也让其部署对初学者而言并非易事。




 

       







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值