面向对象程序设计

陈伟 张欣佳 李河 彭君

目录

  • 1 概述
    • 1.1 概述—本课程学习什么
    • 1.2 概述—编程泛型和面向对象程序设计
    • 1.3 概述—C++语言简介
    • 1.4 概述—C++集成开发环境
    • 1.5 概述—参考资料
  • 2 C++程序结构
    • 2.1 C++工程(项目)组成
    • 2.2 C++项目编译过程1
    • 2.3 C++项目编译过程2
    • 2.4 C++项目编译过程3
    • 2.5 main函数
    • 2.6 头文件1
    • 2.7 头文件2
    • 2.8 包含警戒
    • 2.9 实现文件
  • 3 变量和类型
    • 3.1 抽象数据类型
    • 3.2 OOP中的类型
    • 3.3 C++语言中类型
    • 3.4 C++语言中类型-枚举
    • 3.5 声明和定义
    • 3.6 变量的使用原则
    • 3.7 单一定义规则
    • 3.8 变量的存储与作用域
    • 3.9 表达式
  • 4 指针、数组、引用、常量
    • 4.1 指针
    • 4.2 数组
    • 4.3 引用
    • 4.4 #define和宏
    • 4.5 命名常量
    • 4.6 const和指针
    • 4.7 const和引用
  • 5 函数
    • 5.1 函数声明
    • 5.2 函数的调用过程
    • 5.3 调用约定
    • 5.4 函数重载
    • 5.5 函数的参数列表
    • 5.6 函数的返回
  • 6 类和对象
    • 6.1 类型的抽象
    • 6.2 类型的表示及定义
    • 6.3 类的成员
    • 6.4 类和对象
    • 6.5 对象的存储大小
  • 7 成员函数
    • 7.1 成员函数的实现
    • 7.2 this指针
    • 7.3 外联实现和内联实现
    • 7.4 访问控制
    • 7.5 封装和信息隐蔽
    • 7.6 常成员函数
    • 7.7 实例变(常)量实例方法类变量类方法
    • 7.8 Card类的定义和实现
  • 8 构造和析构
    • 8.1 自定义构造函数
    • 8.2 缺省的构造函数
    • 8.3 对象的初始化
    • 8.4 析构函数
    • 8.5 构造和析构函数的访问
  • 9 对象的拷贝与赋值
    • 9.1 对象的拷贝
    • 9.2 缺省拷贝构造函数
    • 9.3 浅拷贝
    • 9.4 使用自定义拷贝构造函数
    • 9.5 对象的赋值
    • 9.6 自定义赋值函数
  • 10 运算符重载
    • 10.1 运算符的重载
    • 10.2 二元运算符重载
    • 10.3 成对重载
    • 10.4 一元运算符重载
    • 10.5 重载[ ],(),->和定向输入输出
    • 10.6 运算符重载的方针
  • 11 动态内存管理
    • 11.1 存储空间
    • 11.2 静态存储及其不足
    • 11.3 单对象(变量)的动态分配及释放
    • 11.4 重载operator new和operator delete
    • 11.5 数组的动态分配及释放
    • 11.6 智能指针和共享指针
    • 11.7 共享指针的实现1
    • 11.8 共享指针的实现2
    • 11.9 其它说明
  • 12 转换函数、名字空间、友元、嵌套类、流
    • 12.1 转换函数
    • 12.2 名字空间的引入
    • 12.3 名字空间
    • 12.4 名字汇入
    • 12.5 友员和友员类
    • 12.6 嵌套类
    • 12.7 流
  • 13 类(对象)间关系
    • 13.1 编译期依赖性
    • 13.2 类间的逻辑关系
    • 13.3 关联
    • 13.4 聚集(组合和聚合)
    • 13.5 依赖
    • 13.6 学生→宿舍的关系(例)
    • 13.7 宿舍→学生的关系(例)
  • 14 类的设计
    • 14.1 面向对象的三大基本特征
    • 14.2 抽象与表示
    • 14.3 信息隐蔽
    • 14.4 分离使用和实现
    • 14.5 多个类的设计
    • 14.6 单个类的设计
    • 14.7 使用类方法例
    • 14.8 分页器例
  • 15 继承和派生
    • 15.1 黑盒复用和白盒复用
    • 15.2 继承和派生
    • 15.3 派生类中的成员及访问控制
    • 15.4 派生类的构造和析构函数
    • 15.5 派生类的拷贝构造和赋值函数
    • 15.6 newdefine、redefine、overload、overwrite
    • 15.7 继承的含义
    • 15.8 继承和组合的选择
  • 16 继承下的类型转换
    • 16.1 继承下的类型转换
    • 16.2 public继承下的向上类型转换
    • 16.3 类型转换操作符
  • 17 多重继承
    • 17.1 多重继承
    • 17.2 多重继承中的名字冲突
    • 17.3 菱形结构
    • 17.4 虚基类的解决方案
    • 17.5 其它解决方案
  • 18 虚机制
    • 18.1 静态编联与动态编联
    • 18.2 虚函数
    • 18.3 虚函数表
    • 18.4 虚函数的作用机制
    • 18.5 虚函数的作用机制(例)
    • 18.6 虚函数的访问
    • 18.7 具体类和抽象类
    • 18.8 运行时类型识别(RTTI)
  • 19 多态性及其应用
    • 19.1 静态多态和动态多态
    • 19.2 虚机制的作用
    • 19.3 虚机制应用例
    • 19.4 虚机制的意义和不足
  • 20 面向对象程序设计
    • 20.1 面向对象程序设计
    • 20.2 使用依赖和继承
    • 20.3 使用关联和继承
概述—本课程学习什么