论坛首页 综合技术论坛

现代C++简介

浏览 2636 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2007-08-01  

由于设计思路和实现手法的巨大差异,我们可以将C++分成传统C++程序及现代C++(modern C++)程序2种。从1998C++新标准确立之后,C++走上了一条和之前完全不同的道路。到现在为止发展了近10年,涌现出了一大批优秀的类库。<o:p></o:p>

传统C++的设计思想是以面向对象思想为中心。以C Run time作为基础,运用继承,多态及宏作为主要技术手段来开发类库。典型的代表是MFCQTwxWidgets等。<o:p>
</o:p>

现代C++则大幅弱化了面向对象的思想,继承成了纯粹的实现上的手法,而无视其对象上的意义。强调类型安全,最小重复代码,概念的完整性及应用层代码的优雅及可读性。以C++标准库作为基础,尽量减少了对C运行时的依赖(C运行时不是类型安全的。)。主要技术手法是模版,类型推导,操作符重载。最大程度的避免使用宏。

现代C++在引入了模板后,把在传统C++中的几个语法糖变成了语言的基石。

1. typedef
  typedef在传统C++中用处不大,基本上可以用#define替换。但是进入范型之后,typedef被运用到了极致,成为向模板类及模板函数传递信息的最重要手段。

2. 操作符重载
  操作符重载原本只是为了使程序更易读,写法更一致而出现的语法糖。如果乱用的话,反而会引入很多问题,得不偿失。因此在很多语言中不支持操作符重载,比如JAVA。但是在范型编程中,操作符重载却成了必不可少的手段。
因为我们无法给基本类型添加操作,一个算法想要同时对基本类型及类对象有效,只能让类来重载操作符。

典型的现代C++类库代表有BooststlSoftSmartWin++Crypto++等。
其中
Boost是个大杂烩,包括了从基础设施到应用级机能各个层面的类库。<o:p></o:p>

<o:p></o:p>传统的C++类库大家应该已经很熟悉了。接下来计划陆续介绍一下现代C++类库。<o:p></o:p>

<o:p>向所有被填空贴所迷惑的朋友道歉,不知道怎么回事,所有的英文字符都看不见了,但是进入编辑版面后又都能正常显示。只能把所有英文又再打一遍了。
</o:p>
   发表时间:2007-08-02  
好不容易看到一个我喜欢的话题,居然还是填空题。。。。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics