| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C++【认识继承】 -> 正文阅读 |
|
[C++知识库]C++【认识继承】 |
目录 1.对继承的理解概念:
格式定义
派生类的继承方式
上述举例为public继承,还有protected继承和private继承 通过这些继承方式继承下来的基类成员的权限,由继承方式和在原基类中的权限决定,取小。 权限大小:public > protected > private
2.基类和派生类对象赋值转换
派生类对象赋值给基类对象派生类可赋值给基类引用这里要注意,引用部分是子类中继承基类的那一部分: 派生类地址赋值给基类指针地址也仅仅是看继承下来的那些数据: 3.继承中的作用域
4.派生类的默认成员函数构造函数子类对象调用构造函数时,继承自基类的成员先自动调用基类的构造函数,对继承成员初始化,之后子类成员再初始化自己的成员: 依旧遵循:对内置类型不做处理,自定义类型调其用自身的拷贝构造 ? ? ? ? 这里可以理解为将继承自基类的成员看作是自定义类型去调用基类构造函数进行初始化 解决方式1:在函数内部直接赋值解决方式2:在初始化列表中显示调用拷贝构造遵循与上述相同的规则,不能在初始化列表中对基类成员进行初识化,要显示调用: 目的在于,将基类成员传递给基类的拷贝构造进行构造,如何传递对应部分: 赋值重载
析构函数
5.继承中的友元和静态友元函数友元关系不能继承,也就是说基类友元不能访问子类私有和保护成员 静态成员基类中定义的static静态成员,在整个继承体系中仅此一个,派生类的基类这个静态成员: ? 6.菱形继承及菱形虚拟继承概念单继承:一个子类只有一个直接父类时称这个继承关系为单继承
菱形继承有数据冗余和二义性的问题。在school的对象中person成员会有两份: 二义性? 数据冗余?虚拟继承解决数据冗余和二义性的问题,可以使用虚拟继承: 在Student和Teacher的继承Person时使用虚拟继承,即可解决问题。虚拟继承不要在其他地方使用。 ? 虚拟继承解决数据冗余和二义性的原理数据冗余很容易理解,因为相同数据存储了两份: 存储两份占用两个不同空间,造成二义性; 如果存储的数据过大,无疑菱形继承的问题会被成倍放大,那么虚拟继承是如何消除二义性和数据冗余的,来康康虚拟继承下的内存: 由上图我们可以看到,与正常的继承相比,虚拟继承将 _a 放在了同一块空间,不在B和C里面,这应当是减少了内存的,但是从图中看出虚拟继承还多出来了两个地址,令内存看起来还比原来大了些: 指针存储的偏移量上面有什么作用: 当有b=d、c=d,子类对象赋给基类,会发生切片;或者直接定义B、C对象后,通过对象改变_a时,都要靠指针位置存储的偏移量去找到继承下来的_a 的位置。? 在虚拟继承中,基类A有了新的名字叫做虚基类,上图存储两个指针的内存表叫做虚基表,这两个找A的指针叫做虚基表指针。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:50:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |