面向对象编程
- 继承
- 访问方式
- 内部访问
- 对象访问(外部访问) - 访问属性
- 公有继承
- 私有继承
- 保护继承
- 继承导致二义性
- 类间转换
- 上行隐式转换
- 下行显式转换
- 转换时根据类型匹配地址
- 多基继承
- 限定符访问
- 同名函数隐藏
- 菱形继承
- 重叠子对象
- 虚基类
- 类间转换
- 转换函数
- 转换构造函数->类
- 只能够一个参数
- 类型转换函数->基本数据
- 成员函数
- 无参数
- 不能指定返回类型,但要返回目标变量
- 转换构造函数->类
- 访问方式
- 虚函数多态
- 静态联编与动态联编
- 联编:根据函数名和参数选择函数
- 静态联编
- 重载
- 动态联编
- 虚函数多态
- 不能声明为虚函数的函数
- 普通函数(非成员函数)
- 静态成员函数
- 构造函数
- 友元函数
- 设置无意义
- 内联函数
- 赋值运算符
- 构造函数与析构函数中的虚函数
- 调用的事当前类的函数
- 尽量避免这样调用虚函数
- 虚函数表指针(vptr)与虚基类表指针(bptr)
- 虚函数表指针
- c++对象模型
- 非静态数据成员
- 虚函数表指针
- c++对象模型
- 含静态变量,虚函数的类的空间计算
- 空类大小为1
- 虚函数表指针大小为4
- 虚函数表的实现
- 虚函数表指针指向虚函数列表
- 单继承
- 派生类函数地址覆盖基类虚函数地址
- 多继承
- 几个基类几个虚函数表指针
- 虚基类表指针
- 菱形继承
- 直接派生类指向共同基类保证只有一份实体
- 空间计算
- 虚基类表指针大小为4
- 空虚基类大小为1
- 字节对齐
- 菱形继承
- 虚函数表指针
- 虚继承构造函数书写
- 把每个基类都写上
- 纯虚函数
- 类似于抽象函数
- 静态联编与动态联编
- 动态运行时类型识别与显式转换
- RTTI运行时类型识别
- typeid(返回实际类型)
- dynamic_cast(类型检查)
- 显式转换(强制类型转换cast)
- retinterpret_cast
- 括号"()"运算符强制类型转换
- const_cast
- 消除const性质
- static_cast
- 隐式转换
- 下行转换
- dynamic_cast
- 上下行转换
- 只能指针和引用的转换
- 要求参数所指类实现多态
- 类型检查
- 不满足返回空
- retinterpret_cast
- RTTI运行时类型识别
网友评论