c++远征之继承篇
来源:互联网 发布:c 游戏编程教程 编辑:程序博客网 时间:2024/04/29 02:13
一、继承
继承 子类是父类的子集 派生类——基类 = 子类——父类
继承 :创建时-》先构造基类再派生类 对象消亡时-》先析构派生类再析构基类
几种继承方式区别:
无法直接访问protected、private,只能访问public
二、隐藏和覆盖
覆盖是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类) ;
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有 virtual 关键字。
隐藏”是指派生类的函数屏蔽了与其同名的基类函数,具体规则:
如果派生类的函数与基类的函数同名,但是参数不同。此时,若基类无virtual关键字,基类的函数将被隐藏。(注意别与重载混淆,虽然函数名相同参数不同应称之为重载,但这里不能理解为重载,因为派生类和基类不在同一名字空间作用域内。这里理解为隐藏)
若隐藏可以使用 派生类对象.基类::基类成员函数 来访问
大类只能去包含小类,即小类赋值给大类,而不能大类赋值给小类
c++概念:隐形眼镜也是眼镜 关系IS-a,这是非常重要的
因为子类中肯定有父类的成员变量或函数,将子类去初始化父类时,相同部分赋值,不同部分截断。反过来不行,因为子类中比父类多的部分就无法初始化,会造成内存泄漏。
三、多继承和多重继承
四、虚继承
如果像图片一样的情况,可能会遇到继承是同个父类,在子类中具有相同的父类,会造成系统冗余。这就需要使用虚继承(只能指向相同的父类)。
不过虚继承作为底层的父类不能进行值的传递,只使用初始化的父类,默认的参数
0 0
- c++远征之继承篇
- c++远征之继承篇
- c++远征之继承篇——继承方式
- c++远征之继承篇——多重继承,多继承,虚继承,多继承时的重复定义解决方法
- c++远征之启航篇
- c++远征之继承篇——继承的概念、继承时构造函数/析构函数的先后顺序
- c++远征之继承篇——隐藏,isa,虚析构函数
- C++远征之起航篇知识点
- C++远征之封装篇上
- C++远征之封装篇下
- C++远征之友元函数篇<->
- c++远征之封装篇(对象)
- c++远征之离港篇
- c++远征之封装篇(拷贝构造函数)
- c++远征之封装篇(对象指针)
- c++远征之封装篇(this指针)
- C++远征之封装篇——字符串类型
- c++远征之模板篇——运算符重载
- 产品需求思考
- web学习
- c#多线程 Invoke方法的使用
- 最短路
- 阿里腾讯市值
- c++远征之继承篇
- 版本更新 main方法
- Spark2.0机器学习系列之10: 聚类(高斯混合模型 GMM)
- SPFA算法
- 实战!MySQL 数据库增量数据恢复
- 说《拆书》
- 数据结构 Tricks(一)—— 父节点和左右孩子索引号之间的关系
- 【Mybatis学习总结四】实现关联表查询----一对一关联(association)
- 算法分析