版本3和4间的区别
于2006-06-25 12:42:32修订的的版本3
大小: 6010
编辑: czk
备注:
于2006-06-25 12:43:55修订的的版本4
大小: 6026
编辑: czk
备注:
删除的内容标记成这样。 加入的内容标记成这样。
行号 150: 行号 150:
 * 分析设计(需求,设计)
 * 编辑程序(得到c++源程序)
 * 分析设计Analize and Design(需求,设计)
 * 编码Code(得到c++源程序)

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

The End

C++概述 (2008-05-08 15:33:45由czk编辑)

ch3n2k.com | Copyright (c) 2004-2020 czk.