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等