由于设计思路和实现手法的巨大差异,我们可以将C++分成传统C++程序及现代C++(modern C++)程序2种。从1998年C++新标准确立之后,C++走上了一条和之前完全不同的道路。到现在为止发展了近10年,涌现出了一大批优秀的类库。<o:p></o:p>
传统C++的设计思想是以面向对象思想为中心。以C Run time作为基础,运用继承,多态及宏作为主要技术手段来开发类库。典型的代表是MFC,QT,wxWidgets等。<o:p>
</o:p>
现代C++则大幅弱化了面向对象的思想,继承成了纯粹的实现上的手法,而无视其对象上的意义。强调类型安全,最小重复代码,概念的完整性及应用层代码的优雅及可读性。以C++标准库作为基础,尽量减少了对C运行时的依赖(C运行时不是类型安全的。)。主要技术手法是模版,类型推导,操作符重载。最大程度的避免使用宏。
现代C++在引入了模板后,把在传统C++中的几个语法糖变成了语言的基石。
1. typedef
typedef在传统C++中用处不大,基本上可以用#define替换。但是进入范型之后,typedef被运用到了极致,成为向模板类及模板函数传递信息的最重要手段。
2. 操作符重载
操作符重载原本只是为了使程序更易读,写法更一致而出现的语法糖。如果乱用的话,反而会引入很多问题,得不偿失。因此在很多语言中不支持操作符重载,比如JAVA。但是在范型编程中,操作符重载却成了必不可少的手段。因为我们无法给基本类型添加操作,一个算法想要同时对基本类型及类对象有效,只能让类来重载操作符。
典型的现代C++类库代表有Boost,stlSoft,SmartWin++,Crypto++等。
其中Boost是个大杂烩,包括了从基础设施到应用级机能各个层面的类库。<o:p></o:p>
<o:p></o:p>传统的C++类库大家应该已经很熟悉了。接下来计划陆续介绍一下现代C++类库。<o:p></o:p>
<o:p>向所有被填空贴所迷惑的朋友道歉,不知道怎么回事,所有的英文字符都看不见了,但是进入编辑版面后又都能正常显示。只能把所有英文又再打一遍了。
</o:p>
分享到:
- 2007-08-01 13:59
- 浏览 2090
- 评论(1)
- 论坛回复 / 浏览 (1 / 2620)
- 查看更多
相关推荐
内容涉及C++11,C++14,C++17,C++20 新特性,包括右值引用,移动语义,lambda表达式,范围for循环 等
《现代C++语言核心特性解析》其他资料
使用现代C++制作的玩具引擎.zip使用现代C++制作的玩具引擎.zip使用现代C++制作的玩具引擎.zip使用现代C++制作的玩具引擎.zip使用现代C++制作的玩具引擎.zip使用现代C++制作的玩具引擎.zip使用现代C++制作的玩具引擎....
《现代C++程序设计(原书第2版)》图文并茂,通俗易懂,真正做到寓教于乐,是一本难得的C++面向对象设计入门教材。 出版者的话 译者序 前言 第1章 C++概述与软件开发 1.1 什么是C语言和C++ 1.1.1 C和C++历史回顾 1.1.2...
本书号称『高速上手』,从内容上对二十一世纪二十年代...此外,笔者希望读者在阅读本书后,能够努力在新项目中直接使用现代C++,并努力将旧项目逐步迁移到现代C++。也算是笔者为推进现代C++的普及贡献了一些绵薄之力。
C++作为一门拨打精深的语言,其发展演化历程堪称波澜壮阔。本书介绍了C++的相关背景及其演化供大家学习。
现代c++程序设计 国外经典教材现代c++程序设计 国外经典教材现代c++程序设计 国外经典教材
现代C++程序设计.pdf,一本不错的C++入门书
内容简介 本书采用生动轻松的语言,深入阐述了C++语言和面向对象程序设计技术。书中设计了超过115个完整的经过教学测试的代码示例,不仅分析了这些示例的代码片段,而且还解释了如何把它们组成一个完整的程序。此外...
微软现代C++语言参考手册英文版
现代C++程序设计(CN)-[Barbara Johnston].pdf
【机会给有准备的人...等待吧,兄弟】《写给大忙人看的C++...《写给大忙人看的C++》既适合需要快速了解C++的初学者,也适合想要了解C++11的新特性的有C++编程经验的高级程序员,还可作为开发人员工作中的C++综合参考。
C++语言核心 C++语言核心 C++语言核心 C++语言核心 C++语言核心 C++语言核心 C++语言核心 C++语言核心 C++语言核心 C++C++语言核心 C++语言核心 C++语言核心 C++语言核心 C++语言核心 C++语言核心 C++语言核心 C++...
Dlib 是一个现代C++工具包,包含机器学习算法和工具源码(用于使用C++创建复杂的软件来解决现实问题).zip Dlib 是一个现代C++工具包,包含机器学习算法和工具源码(用于使用C++创建复杂的软件来解决现实问题).zip ...
现代C++异步编程示例,包括使用thread、async、packageed_task进行整数列表的求和操作,并与C++17 std::execution::par异步策略进行对比。
c++语言简介.pdf
Barbara Johnston 所著(第二版)的源代码