C++语言类的继承与派生介绍和示例
继承
继承是面向对象程序设计中最重要的一个概念。继承允许我们根据一个类来定义另一个类,达到了代码功能重用效果。
当创建一个类时,如果待创建的类与另一个类存在某些共同特征,程序员不需要全部重新编写成员变量和成员函数,只需指定继承另一个类即可,被继承的类称为基类或父类,新建的类称为派生类或子类。
选秀之后,被选中的超女成了宫女和王妃,宫女和王妃从超女那里继承了姓名、年龄、身高、身材、颜值等特征,还会具备一些新的特征,如果是王妃,有称号、居住的宫殿、奉䘵、为她服务的太监和宫女数量等。
基类和派生类
定义一个派生类,需要指定它的基类,语法如下:
class derived-class: access-specifier base-class
derived-class:派生类名。
access-specifie:访问修饰符 access-specifier 是 public、protected 或 private 其中的一个,base-class 是之前定义过的某个类的名称。如果未使用访问修饰符 access-specifier,则默认为 private。
base-class:基类名
从超女类派生出王妃类,示例如下(book235.cpp):
运行结果如下:
访问控制和继承
派生类可以访问基类中所有的非私有成员变量和成员函数,如果基类的成员变量和成员函数不想被派生类访问,则应在基类中声明为 private。
继承类型
当一个类派生自基类,该基类可以被继承为 public、protected 或 private 几种类型。继承类型是通过上面讲解的访问修饰符 access-specifier 来指定的。
我们几乎不使用 protected 或 private 继承,通常使用 public 继承。当使用不同类型的继承时,遵循以下几个规则:
1)公有继承(public):当类派生以public方式继承时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。
2)保护继承(protected): 当类派生以protected方式继承时,基类的公有和保护成员将成为派生类的保护成员。
3)私有继承(private):当类派生以private方式继承时,基类的公有和保护成员将成为派生类的私有成员。
基类与派生类的指针
基类的指针可以指向基类对象。
派生类的指针可以指向派生类对象。
基类的指针可以指向派生类对象,但是不能通过基类的指针访问派生类的成员。
派生类的指针不可以指向基类对象。
多继承
多继承即一个派生类可以有多个基类,它继承了多个基类的特性。
C++ 类可以从多个基类继承成员,语法如下:
class <派生类名>:<继承方式1><基类名1>,<继承方式2><基类名2>,…
{
// 派生类类体
};
其中,访问修饰符继承方式是 public、protected 或 private 其中的一个,用来修饰每个基类,各个基类之间用逗号分隔。
个人经验
类的继承与派生在windows环境中用得比较多,在Linux环境下用得很少,这么多年来,我只是偶尔用一下,大家只要了解继承与派生基本用法就行了,不必深入研究。
多继承的应用场景就更少了,我从未用过。
版权声明
C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
来源:C语言技术网(www.freecplus.net)
作者:码农有道
如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!!
如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!!
C++语言类的继承与派生介绍和示例相关推荐
- 模块的封装之C语言类的继承和派生
[交流][微知识]模块的封装(二):C语言的继承和派生 在模块的封装(一):C语言的封装中,我们介绍了如何使用C语言的结构体来实现一个类的封装,并通过掩码结构体的方式实 现了类成员的保护.这一部分,我 ...
- C++类的继承与派生
文章目录 一.继承 二.基类和派生类 三.继承方式 六.多继承 七.应用经验 八.课后作业 九.版权声明 一.继承 继承是面向对象程序设计中最重要的一个概念.继承允许我们根据一个类来定义另一个类,达到 ...
- 类的继承和派生java_类的继承和派生
一.类的继承和派生定义. 继承:保持已有类的特性而构造新类的过程称为继承. 派生:在已有类的基础上新增自己的特性而产生新类的过程称为派生. 被继承的已有类称为基类. 派生出的新类称为派生类. 二.继承 ...
- 实验四 类和对象;类的继承和派生;多态性; 接口;构造器应用
实验四 类和对象:类的继承和派生:多态性: 接口:构造器应用 一.实验目的 1. 掌握类与对象的关系: 2. 掌握类的定义: 3. 掌握对象的声明及使用: 4. 掌握构造方法的概念及调用时机: 5. ...
- 【C++进阶知识】C++类的继承和派生
目录 C++进阶知识系列文章 C++类的继承和派生 基本语法 访问修饰符 构造函数和析构函数 覆盖父类的方法 虚函数和纯虚函数 示例代码 参考资料 C++进阶知识系列文章 C++类的继承和派生 在面向 ...
- python 钻石继承_python3--object类,继承与派生,super方法,钻石继承问题
python3--object类,继承与派生,super方法,钻石继承问题 发布时间:2018-04-13 20:38:05编辑:Run阅读(1914) 昨天内容复习 组合:什么有什么的关系(例:老师 ...
- c 自定义实现string类 clear_CC++语言15|类的继承和派生实现代码重用、扩充
在C++中,继承是一个对象自动获取其父对象的所有属性和行为的过程.通过继承,您可以重用,扩展或修改在其他类中定义的属性和行为.通过继承,可以实现函数重写以及多态. 在C++中,继承另一个类的成员的类称 ...
- 任务三 类的继承与派生
文章目录 第1关:公有继承 -- 学生信息类 相关知识 继承 继承方式 公有继承 编程要求 公有继承 -- 学生信息类 第2关:保护继承 -- 学生信息类 相关知识 保护继承 编程要求 保护继承 -- ...
- c++ 类的继承与派生
一.基本概念 1.类的继承,是新的类从已有类那里得到已有的特性.或从已有类产生新类的过程就是类的派生.原有的类称为基类或父类,产生的新类称为派生类或子类. 2.派生类的声明: class 派生类 ...
最新文章
- 红帽虚拟化RHEV-PXE批量安装RHEV-H
- Python中enumerate用法详解
- Java面试宝典系列之面试复习提纲
- Socket网络编程--小小网盘程序(4)
- 50句看后可以变换心情豁然开朗的话
- 巧用 Trie 树,实现搜索引擎关键词提示功能
- Redmi王腾:Redmi 10X还会带来全新滤镜
- 从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式
- win10开启文件共享服务器,墨涩网 - Windows10开启局域网文件共享功能——墨涩网...
- python3操作win32com报错:AttributeError: Open.SaveAs 或者<COMObject Open>“, line 8, in SaveAs pywintypes.c
- 时间漩涡的世界 (二)
- 已知两点, 求直线斜率
- 随便写的:新戏剧之王,一部广义上的烂片观后感
- 如何让开源多点成功的几率;开源和 COVID-19: 道高一尺魔高一丈;等开源之道每周评论2020 04 07...
- 亿发软件:中大型仓库进出货管理系统解决方案,定制软件让仓储作业高效便捷
- 集群qorum数量master-eligible节点掉线解决方法
- mysql逆向工程封装_MyBatis高级应用之逆向工程自动生成SQL语句
- 计算机主板维修的意义,主板维修个人经验 -电脑资料
- 确认,谷歌AI中国中心总裁李佳离职
- 一个Vue页面的内存泄露分析
热门文章
- 微课|玩转Python轻松过二级(1.3节):编码规范与代码优化建议2
- Python+django网页设计入门(4):用户登录与登录验证
- iphone天行连接不上服务器未响应,天行连接不上 - 卡饭网
- Linux 写入ntfs很慢,ntfs-3g 写入 速度优化
- oracle as sydba,Oracle的操作系统认证(/ as sydba 登录方式)
- winform中listview选中整行_工作中常见的11个Excel难题,一次解决!
- 力扣102. 二叉树的层序遍历(JavaScript)
- 有道云笔记Android app离线缓存,有道云笔记Android版升级 增加笔记离线阅读与收藏...
- Python多线程笔记——简单函数版和类实现版
- mysql profiling_MySQL Profiling 的使用