- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数 据 结 构 与 算 法 分 析》
几个C++的概念
面对对象技术:软件系统对现实世界的直 接模拟,尽量实现将现实世界中的事物直 接影射到软件系统的解空间。
现实空间问题 物质:
一辆白色的自行车 意识: 自行车 面向对象解空间 具体事物: 一个对象----自行车的实例 抽ห้องสมุดไป่ตู้概念: 自行车类 《数 据 结 构 与 算 法 分 析》
《数 据 结 构 与 算 法 分 析》
C++对C在代码上的扩充
引用
void swap(int &a, int &b) 作用:传递数据、不复制副本
函数重载:一物多用 int max(int a, int b, int c) long max(long a, long b, long c) float max(float a, float b, float c)
《数 据 结 构 与 算 法 分 析》
C++语言中的关键字
Asm auto break case catch* cdecl char class* const continue default delete* do double else enum extern far float for friend* goto huge if inline* int interrupu long near new* operator* pascal private* protected* public* register return short signed sizeof static struct switch template* this* throw* try* typedef union unsigned virtual* void volatile while
C: 面向过程 C++:面向对象
《数 据 结 构 与 算 法 分 析》
面向过程程序设计—C语言
选定数据结构、设计算法过程或函数。程 序执行被看作各过程调用的序列。 面向过程编程:
程序 = 数据结构 + 算法
设计思路
自顶向下、逐步求精。采用模块分解与功能抽 象,自顶向下、分而治之。
炒菜吃 种菜、洗菜、切菜、炒菜
《数 据 结 构 与 算 法 分 析》
C++对C在代码上的扩充
cout <<, cin>> 代替 printf, scanf
Printf, scanf 都必须配合%d、%f等格式控制符使用 Cout<<, cin>>后面直接跟上操作数即可,不用格式控 制符;
new, delete 代替malloc, free
《数 据 结 构 与 算 法 分 析》
面向过程的结构化程序设计方法
缺点:可重用性差、数据安全性差、难以开 发大型软件和图形界面的应用软件
把数据和处理数据的过程分离为相互独立的实 体。
当数据结构改变时,所有相关的处理过程都要 进行相应的修改。 每一种相对于老问题的新方法都要带来额外的 开销。 图形用户界面的应用程序,很难用过程来描述 和实现,开发和维护也都很困难。
《数 据 结 构 与 算 法 分 析》
面向对象程序设计—C++语言
将数据及对数据的操作方法封装在一起,作为一 个相互依存、不可分离的整体——对象。
对同类型对象抽象出其共性,形成类。
主要特征是各对象之间的消息传递和各类之间的 继承。 类通过一个简单的外部接口,与外界发生关系。 对象与对象之间通过消息进行通信。
从C 语言到C++语言
《数 据 结 构 与 算 法 分 析》
C++的学习用书
任何一本你能接触到的C++编程书籍 谭教授的书 清华 王燕 《面向对象的理论与C++实践》 航空工业 赵建周 《C和C++程序设计教 程》
《数 据 结 构 与 算 法 分 析》
C与C++的不同
C++在代码上对C的扩充 大不相同
New自动计算要分配的类型大小,省事,避免偶然错 误; 它自动返回正确的指针类型,不必进行类型转换; 可以用new将分配的对象初始化; 《数 据 结 构 与 算 法 分 析》
一个 简单 的 C++ 程序 例子
#include <iostream> #include <string> void main() { string user_name; cout << "Please enter your first name:"; cin >> user_name; cout << '\n' << " Hello, " << user_name << "... and goodbye! \n"; }
《数 据 结 构 与 算 法 分 析》
面向对象程序设计
一个类的集合和各类之间以继承关系联系起 来的结构,再加上一个主程序,在主程序中 定义各对象并规定它们之间传递消息的规律 。 面向对象编程:
对象 = 数据结构 + 算法 (封装);
程序 = 对象 + 对象 + 对象 + ……
炒菜吃: 买净菜、按照烹调说明书炒菜
《数 据 结 构 与 算 法 分 析》
C++ 对C的保留
C++具有对传统C语言的向后兼容性,很多 已有的C程序可以稍加改造就可以重用。 虽然C++具备面向对象的处理能力,但它 还是保留了很多面向过程的东西。用C++ 完全可以不用面向对象的思想来进行程序 设计,当然人们不会这样去做——除了那 些只是把C++看成是C扩充的初学者。
《数 据 结 构 与 算 法 分 析》
面向对象程序设计
优点:
程序模块间的关系更为简单,程序模块的独立 性、数据的安全性就有了良好的保障。 通过继承与多态性,可以大大提高程序的可重 用性,使得软件的开发和维护都更为方便。
《数 据 结 构 与 算 法 分 析》
C语言中的关键字
Auto break case char continue default do double else entry enum extern for float goto if int long register return short signed sizeof static struct switch typedef union unsigned while