c++面向对象程序设计
[toc]
c++的初步知识
概念
- 与c的异同
- 面向对象
- 注释
- 输入输出流对象
- 不同的头文件
- 命名空间
- 类
- 私有公有
- 数据
- 函数
- 封装
- 对象
- c的扩充
- 输入输出
- 函数原型声明
- 函数重载
- 参数的不同
- 函数模版
template<typename T> 通用函数定义
- 有默认参数的函数
- 变量的引用
- 内置函数
- 作用域运算符::(访问同名全局变量)
- 字符串变量
- 动态分配/撤销内存
- new
- delete
类和对象的特性
概念
- 面向对象程序设计
- 对象
- 属性
- 行为
- 特点
- 封装
- 抽象
- 继承与重用
- 多态
- 程序=对象s+消息s
- 面向对象的软件开发
- 分析
- 设计
- 编程
- 测试
- 维护
- 对象
- 类的声明与对象的定义
- 类的成员函数
- 内置成员函数
- 成员函数的储存
- 对象成员的引用
- 类的封装和信息隐蔽
- 类声明和成员函数定义的分离
- 类库
- 类声明头文件
- 编译过的函数定义目标文件
- 类库
- 类声明和成员函数定义的分离
- 面向对象
- 对象
- 方法
- 消息
怎样使用类和对象
- 类的初始化
- 构造函数
- 默认参数的构造函数
- 构造函数重载
- 参数初始化表
- 构造函数
- 析构函数
- 有关对象的指针
- 共用数据保护
- 常对象
- 声明同时必须初始化
- 只能调用常成员函数只读访问数据成员
- 例外:mutable
- 常对象成员
- 常数据成员只能通过参数初始化表进行初始化
- 常对象的数据成员都是常数据成员
- 常成员函数
- 可以访问所有数据,但不能修改
- 声明和定义时都要有const关键字
- 指向对象的常指针:不可改变指向
- 指向常对象的指针:不可改变指向对象的值
- 对象的常引用
- 常对象
- 对象的动态建立和释放
- 指针=new 对象
- 对象的赋值和复制
- 静态成员
- 静态数据成员
- 只能在类体外进行初始化
- 静态成员函数
- 只能访问静态数据
- 静态数据成员
- 友元
- 友元函数:访问私有成员
- 友元类
- 类模版
- 模板类的定义
- 类外定义模版类成员函数
对运算符进行重载
- 一名多用
- 拓展处理自定义数据类型
- 使用方法
- 运算符重载格式
- 函数类型 operator 运算符名称(形参表){处理语句}
- 规则
- 类成员函数:隐式一个本类形参
- 单目运算符,复合运算符
- 赋值,下标,函数调用,成员运算符
- 转换构造函数:只有一个形参
- 类型转换函数
- 友元函数
- 双目
- 流运算符
- istream
- ostream
- 类成员函数:隐式一个本类形参
- 运算符重载格式
继承与派生
- 继承方式
- public
- private
- protected
- 多级派生
- 简单派生构造函数
- 有子对象派生构造函数
- 多层派生构造函数
- 析构函数
- 多重继承
- 成员名不冲突
- 二义性
- 派生同名覆盖
- 直接基类作用域符
- 虚基类:只保留一份基类成员
- 所有直接派生类声明为虚基类
- 虚基类派生构造函数全写
- 基类与派生类的转化
- 派生给基类赋值
- 直接赋值
- 引用赋值
- 指针赋值
- 传参
- 派生给基类赋值
- 继承组合
- 构造函数写子对象
多态性与虚函数
- 多态性
- 静态多态
- 使用对象名调用
- 动态多态
- 基类指针调用不同函数
- 虚函数
- 纯虚函数
- 抽象类
- 静态多态
输入输出流
- 标准输入输出
- 文件输入输出
- 文本文件
- 二进制文件
- 字符串流输入输出
C++工具
- 异常处理
- 命名空间