| |
|
开发:
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++) |
提示:博客里面的代码都是在vs2022下调试的 目录 1.继承的概念及定义1.1继承的概念
我们写这样一段代码,表示B类继承自A类 然后我们构造一个B类对象,可以看到A类的变量也在里面,这就是类的继承 1.2继承的定义我们前面看到的A类也基类,也叫父类,后面看到的B类叫派生类,也叫子类 ?1.2.2继承关系和访问限定符?继承关系很访问限定符虽然名字一样,但是出现的位置不同,所以意思有就不一样,不同的继承关系代表着父类的不同访问权限成员在子类中的访问权限的变化 1.2.3继承基类成员访问方式的变化?其中,在派生类中不可见的意思是:虽然派生类里面知道有,但是没有办法访问
我们运行这个代码,结果是这个 ?总结
2.基类和派生类对象赋值转化
?拿这幅图解释一下 ?子类可以赋值给父类,是因为子类最起码也不会小于父类,所以它可以把父类的那一部分赋值给父类 父类指针可以指向子类,是因为父类指针管理的空间比较小,而子类指针比较大,如果去管理父类,那因为子类有一部分比父类大的地方,它管理父类,以为父类后面那一块也是自己的,就会出现越界行为 3.继承中的作用域
?解释一下就是如果子类和父类定义了一样的成员,那访问就会自动访问子类的,如果要想访问父类的,就需要加父类名字和两个冒号
运行这段代码 ?如果我们要想访问A的func,就需要这样
4.派生类的默认成员函数6个默认成员函数,“默认”的意思就是指我们不写,编译器会变我们自动生成一个,那么在派生类中,这几个成员函数是如何生成的呢??
什么意思呢?总结一下,如果基类有默认的构造函数,那子类也可以不写构造函数,但是如果基类写了,而且还不是默认的,那子类必须要写构造函数,还要在初始化列表出显示调用
?拷贝构造函数和赋值运算符重载,一般基类写了,子类也要写 析构函数,子类调用完自己的析构函数,会自动再调用父类的析构函数 5.继承与友元
6.继承和静态成员?
7.菱形继承以及菱形虚拟继承?菱形继承(注意:一个类是可以继承多个类的) ?这样就有一个问题,D继承了两份A里面的东西 解决这个问题的两种办法: 1:也采取前面的方法,在要访问的成员前面加上对应的类 2:虚拟继承 所谓虚拟继承,就是在继承关系的前面加上一个virtual,表示虚拟继承
类似于这样,就可以了 |
|
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 21:51:36- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |