苏嵌 补17.02.27
来源:互联网 发布:23years old牙膏 知乎 编辑:程序博客网 时间:2024/05/19 10:36
继承:
基类(父类)
派生类(子类)
派生类是基类的具体化
用法:class 派生类名 :基类名
继承的三种方法:公有 私有 保护
默认继承:
struct D1:Base{}; //公有继承(结构体也可以继承)
class D2:Base{}; //私有继承
派生类无法访问基类的构造函数
派生类中的所有的构造方法都需要调用基类的构造方法
先调用基类的构造函数,再调用派生类的构造函数
先释放派生类的构造函数,再释放基类的构造函数
构造函数:基类的子对象->基类->派生类的子对象->派生类
析构函数:与上面相反
不能被继承:①构造函数 ②析构函数 ③=运算符 ④友元关系 静态成员无所谓继承
接口继承与实现继承:
接口继承在基类中实现,派生类中不实现
实现继承在基类中实现但private,派生类中重新实现
基类、派生类的转换:
向上转型 派生类到基类√
向下转型 基类到派生类×
单纯继承无异议 多态中有意义
public类型编译器自动转化
private\protected类型 需要强制类型转化------>pb = reinterpret_cast<Base *>(pd);
二义性☆
多继承不能用虚继承
作用域限定符解决了多继承和多重继承的二义性
虚继承解决多重继承的二义性
使用虚继承 编译器默认生成虚基类表指针 vbptr 指向虚基类表(数组) 保存数组的地址
vbptr 1、本类地址与虚基类表指针地址的差 B1和vbptr 0
2、虚基类地址与虚基类表指针在地址的差 B1和bb_ 8
虚基类永远在最下面
虚基类的成员是由最远派生类的构造函数通过虚基类的构造函数进行初始化的
虚基类构造函数是谁调用的? 最远派生类
☆对象的动态创建
- 苏嵌 补17.02.27
- 补6/27
- 补
- 补
- 补
- 苏嵌6(补) 16.11.5
- 正则表达式(补6/27)
- 07年02月27号日志(补)
- 补2013-01-26 27 28 三天日报 千里眼项目
- 补一篇
- 补基础
- 补10.21
- 补泪滴
- GUI_4_2010_03_19_补
- JDBC_1_2010_03_21(补)
- 补好
- 9.21补
- 补昨天
- Java笔试面试题整理第三波
- Romantic(扩展欧几里得)注意数据范围
- 科大讯飞语义
- 2017.2.25【初中部 提高组】模拟赛B组 最短路径(path) 题解
- {@link}与@see的简单使用以及区别--如何写好Java代码注释。
- 苏嵌 补17.02.27
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven
- UML类图和包图
- 1021. 个位数统计
- 1002 数塔取数问题 51NOD
- 正则表达式
- spring mvc xml配置
- 对Window及WindowManager的理解
- Winform:自定义滚动条——可自定义皮肤