C++入门:继承全解
来源:互联网 发布:百度地图数据采集 编辑:程序博客网 时间:2024/06/15 02:50
继承基础知识
什么是继承
一个类拥有了另一个类的属性和方法,就是继承
如何继承
如图,Worker 类继承了 Person 类
三种继承方式
公有集成
class A : public B //A 类公有继承了 B 类
理解:B为基类,A为派生类。
B类中的 public 方式成员会以 public 方式继承到 A 类中;
B类中的 protected 方式成员会以 protected 方式继承到 A 类中;
B类中的 private 方式的成员不会被继承到 A 类中。
保护继承
class A : protected B //A 类保护继承了 B 类
私有继承
class A : private B //A 类私有继承了 B 类
继承中的特殊关系
隐藏
当基类和派生类有相同的成员方法时,基类的成员方法会被隐藏。但任然可以调用。
如下例子中当 Solder 继承了 Person 类后,Person中的 display() 方法被隐藏。
Is-A(派生类也是基类)
派生类也是基类,拿如下例子理解,士兵也是人。
Is-A使用
这里比较抽象,主要应用在把类当成参数使用时,派生类都是基类,那就是可以把派生类当成基类 类型的参数进行传递。如下图:
多继承与多重继承
多继承的定义
多继承的实现
多重继承的定义
多重继承的实现
虚继承
为什么使用虚继承
在上图的例子中, D 类多继承于 B 类和 C 类, B 类和 C 类又各自继承于 A 类。最后效果就是 D 类继承了两次 A 类,
这种继承模式叫做菱形继承,如果出现菱形继承,计算机就会报错。使用虚继承就是为了避免这一错误。
如何使用虚继承
让 B 类和 C 类虚继承 A 类,就会避免菱形继承出错。
阅读全文
0 0
- C++入门:继承全解
- 《Objective-C编程全解》 读书笔记 第三章 继承
- Objective-C 编程全解-第03章 类和继承
- Objective-C 入门(五)继承
- [C语言入门题]1~n全排列
- C#DateTime操作全解
- C++入门:封装全解(上)
- C++入门:封装全解(下)
- JS模拟面向对象全解(五、继承)
- c继承
- C++----------------继承
- 【c#】继承
- C++:继承
- C++::继承
- [C++]继承
- 【C++】继承
- 【C#】继承
- 【c++】继承
- 第三方登录
- Android调用摄像机,保存图片,添加水印,适配5.0以上版本
- Hibernate中主键生成策略(<generator></gentrator>)的几种方式
- idea启动maven项目
- Lesson7 图形用户界面1
- C++入门:继承全解
- web开发时在浏览器上下载文件中文名字乱码问题
- 20171108
- js通过URL快速获取图片宽高的方法
- 机器学习从0到1入门实录
- tomcat部署多工程Singleton bean creation not allowed while the singletons of this factory are in destructi
- Python 列表list详解
- SparkStreaming整合Flume(二)Pull方式的整合
- 习题6.10