| |
|
开发:
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++继承 |
面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。 当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。 继承代表了?is a?关系。例如,哺乳动物是动物,狗是哺乳动物,因此,狗是动物,等等。——菜鸟 1.继承语法继承的好处:可以减少重复的代码 class A : public B; A 类称为子类 或 派生类 B 类称为父类 或 基类 派生类中的成员,包含两大部分: 一类是从基类继承过来的,一类是自己增加的成员。 从基类继承过过来的表现其共性,而新增的成员体现了其个性。 2.继承方式继承的语法: 继承方式一共有三种:
当一个类派生自基类,该基类可以被继承为?public、protected?或?private?几种类型。继承类型是通过上面讲解的访问修饰符 access-specifier 来指定的。 我们几乎不使用?protected?或?private?继承,通常使用?public?继承。当使用不同类型的继承时,遵循以下几个规则:
3.继承中的对象模型*问题:**从父类继承过来的成员,哪些属于子类对象中? 父类的所有的非静态成员会被子类继承下去,私有成员会被编译器隐藏。
4.继承中构造和析构顺序
继承中 先调用父类构造函数,再调用子类构造函数,析构顺序与构造相反 5.?继承同名成员处理方式
?t1.person::age://访问子类同名成员?直接访问即可?,访问父类同名成员?需要加作用域 当子类与父类拥有同名的成员函数,子类会隐藏父类中所有版本的同名成员函数 如果想访问父类中被隐藏的同名成员函数,需要加父类的作用域 一个派生类继承了所有的基类方法,但下列情况除外:
6.多继承语法语法: 多继承可能会引发父类中有同名成员出现,需要加作用域区分 C++实际开发中不建议用多继承
7.菱形继承菱形继承概念: ? 两个派生类继承同一个基类 ? 又有某个类同时继承者两个派生类 ? 这种继承被称为菱形继承,或者钻石继承 菱形继承问题: 继承导致数据重复,资源浪费。 解决:使用虚继承 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/15 1:33:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |