C++历史:
1980年,贝尔实验室的 Bjarne Stroustrup (本贾尼.斯特劳斯) 开始对C进行改进和扩充。
1983年正式命名为C++。
支持3钟不同的程序设计 | | | | | | | | | | | | | |
| 过程化程序设计 | | | | | | | | | | | | | |
| | 数据+算法 | | | | | | | | | | | | |
| | 明确计算机处理数据的详细过程 | | | | | | | | | | | |
| | 用程序设计语言描述处理过程 | | | | | | | | | | | |
| | 缺点: | | | | | | | | | | | | | |
| | | 由于程序规模的扩大,造成程序结构的混乱,难以保证程序的正确性 | | | | | | |
| | | | | | | | | | | | | | | |
| | 面向过程(结构化程序设计): | | | | | | | | | | |
| | | 自顶而下、分而治之的方法,将整个程序按功能划分为几个可独立编程的子过程模块,每一子模块 | | | |
| | | 完成相应的子任务,主过程通过调用各子模块完成全部处理工作。 | | | | | | |
| | | 规定程序结构只有3种:顺序,分支和循环 | | | | | | | | | |
| | | 优点: | | | | | | | | | | | | |
| | | | 性能比面向对象高,因为类调用时需要实例化,开销比较大, | | | | | |
| | | | 比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 | | |
| | | 缺点: | | | | | | | | | | | | |
| | | | 没有面向对象易维护、易复用、易扩展 | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| 面向对象程序设计(Obiect-Oriented Programming:简称OOP): | | | | | | | | |
| | 以对象为基础,以消息或时间来驱动对象执行处理的技术。 | | | | | | | | |
| | 将数据和对数据的操作封装在一起,抽象为类,采用数据抽象和信息隐藏,类之间互相交互,共同构成大型的面向对象系统。 | | |
| | 代码重用 | | | | | | | | | | | | | |
| | 优点: | | | | | | | | | | | | | |
| | | 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护 |
| | 缺点: | | | | | | | | | | | | | |
| | | 性能比面向过程低 | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | |
| 泛型程序设计 | | | | | | | | | | | | | |
| | 独立于特定类型的编程 | | | | | | | | | | | |
| | 用途 | | | | | | | | | | | | | |
| | | 提供执行常见任务的通用工具 | | | | | | | | | | |
| | | 包括泛型的函数和泛型的类 | | | | | | | | | | |
| | | | | | | | | | | | | | | |
类(Class): | | | | | | | | | | |
| 具有相似属性和行为的一组对象。属性和操作的集合。 | | | | | |
| 类的实例是对象。 | | | | | | | | | |
| | | | | | | | | | | |
对象(Obiect): | | | | | | | | | | |
| 系统中描述客观事物的实体。 | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
面向对象的四个基本特征: | | | | | | | | | |
| 封装(Encapsulation): | | | | | | | | |
| | 将数据和操作封装成一个独立个体,对外隐藏实现细节。实现信息隐藏。 | | | |
| | 类是面向对象系统中最基本的封装单元。 | | | | | | |
| | | | | | | | | | | |
| 继承(Inheritance): | | | | | | | | |
| | 对现实世界的模拟。允许在已有类的基础上通过增加新特性而派生出新的类。 | | |
| | 原有的类称为基类(base class),而新建立的类成为派生类(derived class)。 | | |
| | | | | | | | | | | |
| 多态性(Polymoephism): | | | | | | | | |
| | 统一函数名对应多个具有相似功能的不同函数。 | | | | | |
| | 相同的调用放肆,不同对象收到相同的消息后产生不同的行为。 | | | | |
| | 两种形式的多态:静态和动态多态。 | | | | | | |
| | | | | | | | | | | |
? | 抽象: | | | | | | | | | | |
| | 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。 | |
| | 抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。 | | |
| | 抽象包括两个方面,一是过程抽象,二是数据抽象。 | | | | | |
| | | | | | | | | | | |
C++在C语言的基础上新增了许多特性,其中包括: | | | |
| 类和对象 | | | | | | |
| 继承 | | | | | | |
| 多态、虚函数和RTTI(运行阶段类型识别) | | |
| 函数重载 | | | | | | |
| 引用变量 | | | | | | |
| 泛型(对立于类型的)编程,这种技术是由模板和标准库(STL)提供的 |
| 处理错误条件的异常机制 | | | | |
| 管理函数、类和变量名的名称空间 | | | |
| | | | | | | |
书籍: | | | | | | | |
| 2.C++ Primer Plus | | | | | |
| 3.C++ Primer | | 工具书 | | | |
| 4.C++ Program Language | 收藏,高级特性 | | |
| 5.C++ 对象模型 | | 虚函数,虚函数模型 | | |
| 6.Effect C++ | | 小技巧 | | | |
| 7.More effective C++ | | | | |
| | | | | | | |
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)