3470
备注:
|
6026
|
删除的内容标记成这样。 | 加入的内容标记成这样。 |
行号 96: | 行号 96: |
== 程序执行方式 == * 编译型:由编译器翻译成机器指令执行,比如C, FORTRAN等 * 解释型:由解释器逐条解释执行,比如BASIC, LISP等 * 混合型:由编译器翻译成中间代码,再由解释器逐条执行中间代码,比如Java, .net等 == 为什么选择C++ == * C++兼容C语言 * C语言的程序员多 * C语言的源代码多 * 有C语言基础,较容易学习 * C++是通用的语言,在各种领域都可以使用 * 桌面应用(Office, Photoshop, IE) * 服务器程序(Apache, IIS, ...) * 数据库系统(SQL Server, Oracle, ...) * 操作系统(Windows, ...) * 编译器(GCC, Microsoft C++, Borland C++, ...) * 嵌入式系统(VxWorks, Symbian OS, ...) * 游戏(Doom, Quake, Halflife, ...) * 科学计算 * 支持多种程序设计范式 * 支持兼容C语言的结构化程序设计 * 支持基于对象的程序设计 * 支持面向对象程序设计 * 支持泛型程序设计 * 运行效率很高 * 与C语言相比,运行效率±10% * 开发效率比较高 * 有大量的C/C++库可以使用,提高了开发效率 * wxWindows, QT, gtk+, MFC, boost, MTL, VXL, ACE, …… * 跨平台较好 * 支持源码级跨平台 * 各种软件硬件平台均可使用(Windows、Linux、Unix、Solaris、MacOS、AIX……) * 支持各种硬件平台(x86、x86_64、ia64、alpha、arm、sparc、powerpc、m68k、mips) * 标准开放,不为某个商业公司所有 * 缺点:非常复杂,较难学 == C++语言的发展历史 == * 80年代初贝尔实验室开始研究,主要作者是Bjarne Stroustrup * 1983年第一个C++诞生 * 1985年The C++ Programming Language完成 * 1990年加入模板和异常特性 * 1990年The Annotated C++ Reference Manual完成 * 1993年加入名字空间和运行时类型特征 * 1998年C++标准完成 == C++开发环境 == * 编辑器——编辑源代码 * 编译器——将源代码变成可执行程序 * 调试器——消除程序中的错误 常用 * vi/emacs + gcc + gdb (Unix平台通用,免费) * Visual C++ 2003/2005(Windows下最好,价格昂贵,调试方便) * Dev-C++(Windows平台,免费,调试不方便) == C++程序开发流程 == * 分析设计Analize and Design(需求,设计) * 编码Code(得到c++源程序) * 编译Compile(生成obj) * 连接Link(生成可执行文件) * 调试运行Debug * 发布Deploy |
C++面向对象程序设计 Object Oriented Programming in C++
1. 课程要求
- 掌握面向对象程序设计(OOP)的思想和方法
- 封装Encapsulation, Abstraction
- 继承Inheritance
- 多态Polymorphism
- 掌握用C++进行面向对象程序设计
- 改进的C语言——实现更好的面向过程设计
- 类class——实现封装、继承、多态的基础
- 继承——实现多态的基础
- 虚函数virtual function——实现多态的唯一手段
- 运算符重载operator overload——实现自定义类型的途径
2. 课时
- 面向对象与C++概述 2
- 改进的C语言 4
- 类 6
- 继承 4
- 多态 6
- 运算符重载 4
- 输入输出流 4
3. 基础知识
- C语言程序设计是必须的
- 基本类型、运算符、表达式
- 控制结构
- 函数
- 数组、指针
- 结构体
- 输入输出库
- 其他程序设计语言也是有帮助的(Java、C#、Delphi、Python等)
4. 参考书
- 《Essential C++中文版》,Stanley Lippman
- 《C++编程思想》第二版,Bruce Eckel
- 《C++ Primer中文版》,Stanley Lippman
- 《The C++ Programming Language Special 3rd Edition》,Bjarne Stroustrup
《The C Programming Language第二版》,K&R
5. 如何学习C++和面向对象编程
- 多看书(需要多看参考书)
- 上机编程(实验、大作业)
- 讨论(与同学老师讨论,在网上论坛、讨论组讨论)
总之:花时间!
6. 结构化的程序设计
- C语言程序设计是典型的面向过程程序设计
- 支持顺序、循环、分支结构
- 基本模块是函数
- 采用自顶向下的设计方法
缺点:
- 旧代码不易重用
- 软件不易维护,需求变化时,程序修改困难
7. 面向对象程序设计的作用
- 更多模块化单位,更好的组织程序
- 更容易重用旧代码
- 有更多更好的程序库
- 更容易应付需求变化
总之:得到更高的软件开发效率
8. 面向对象的三个特点
- 封装:构造软件集成块
- 所有的东西都是“对象”
- 对具体对象进行概括,描述其公共性质,抽象成“类”
- 同类的不同对象“属性”不同
- 同类对象具有相同的“方法”
- 对象是“属性”和“方法”相结合的整体
- 对象是“数据”和“算法”相结合的整体
- 只留接口,隐藏实现
- 继承:扩展已有集成块
- 类与类之间Is-a的关系
- 重用共同的东西
- 增加接口,实现独特的东西
- 多态:同样的操作,不同的结果
- 相同的方法,作用在不同类型的对象上,产生不同的结果
- 用相同的方法操纵不同的对象
9. 计算机语言的发展
- 机器语言 01构成的机器指令
- 汇编语言 用符号代替机器指令帮助记忆,与机器指令一一对应
- 高级语言 与人类思维方式更接近,与底层无关
10. 程序设计范式
无范式:最初的ForTran,最初的BASIC等早期高级语言
- 结构化程序设计Structured Programming:PASCAL,C等
- 函数式程序设计Functional Programming:Lisp, Scheme, Haskell等
面向对象程序设计Object Oriented Programming:SmallTalk, Java, C#等
- 泛型程序设计General Programming:C++, Java1.5等
- 其他:AOP, DbC等
11. 程序执行方式
- 编译型:由编译器翻译成机器指令执行,比如C, FORTRAN等
- 解释型:由解释器逐条解释执行,比如BASIC, LISP等
- 混合型:由编译器翻译成中间代码,再由解释器逐条执行中间代码,比如Java, .net等
12. 为什么选择C++
- C++兼容C语言
- C语言的程序员多
- C语言的源代码多
- 有C语言基础,较容易学习
- C++是通用的语言,在各种领域都可以使用
- 桌面应用(Office, Photoshop, IE)
- 服务器程序(Apache, IIS, ...)
- 数据库系统(SQL Server, Oracle, ...)
- 操作系统(Windows, ...)
- 编译器(GCC, Microsoft C++, Borland C++, ...)
嵌入式系统(VxWorks, Symbian OS, ...)
- 游戏(Doom, Quake, Halflife, ...)
- 科学计算
- 支持多种程序设计范式
- 支持兼容C语言的结构化程序设计
- 支持基于对象的程序设计
- 支持面向对象程序设计
- 支持泛型程序设计
- 运行效率很高
- 与C语言相比,运行效率±10%
- 开发效率比较高
- 有大量的C/C++库可以使用,提高了开发效率
- wxWindows, QT, gtk+, MFC, boost, MTL, VXL, ACE, ……
- 跨平台较好
- 支持源码级跨平台
- 各种软件硬件平台均可使用(Windows、Linux、Unix、Solaris、MacOS、AIX……)
- 支持各种硬件平台(x86、x86_64、ia64、alpha、arm、sparc、powerpc、m68k、mips)
- 标准开放,不为某个商业公司所有
- 缺点:非常复杂,较难学
13. C++语言的发展历史
- 80年代初贝尔实验室开始研究,主要作者是Bjarne Stroustrup
- 1983年第一个C++诞生
- 1985年The C++ Programming Language完成
- 1990年加入模板和异常特性
- 1990年The Annotated C++ Reference Manual完成
- 1993年加入名字空间和运行时类型特征
- 1998年C++标准完成
14. C++开发环境
- 编辑器——编辑源代码
- 编译器——将源代码变成可执行程序
- 调试器——消除程序中的错误
常用
- vi/emacs + gcc + gdb (Unix平台通用,免费)
- Visual C++ 2003/2005(Windows下最好,价格昂贵,调试方便)
- Dev-C++(Windows平台,免费,调试不方便)
15. C++程序开发流程
- 分析设计Analize and Design(需求,设计)
- 编码Code(得到c++源程序)
- 编译Compile(生成obj)
- 连接Link(生成可执行文件)
- 调试运行Debug
- 发布Deploy