继承

继承是面向对象程序设计中最重要的一个概念。继承允许我们根据一个类来定义另一个类,达到了代码功能重用效果。

当创建一个类时,如果待创建的类与另一个类存在某些共同特征,程序员不需要全部重新编写成员变量和成员函数,只需指定继承另一个类即可,被继承的类称为基类或父类,新建的类称为派生类或子类。

选秀之后,被选中的超女成了宫女和王妃,宫女和王妃从超女那里继承了姓名、年龄、身高、身材、颜值等特征,还会具备一些新的特征,如果是王妃,有称号、居住的宫殿、奉䘵、为她服务的太监和宫女数量等。

基类和派生类

定义一个派生类,需要指定它的基类,语法如下:

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++语言类的继承与派生介绍和示例相关推荐

  1. 模块的封装之C语言类的继承和派生

    [交流][微知识]模块的封装(二):C语言的继承和派生 在模块的封装(一):C语言的封装中,我们介绍了如何使用C语言的结构体来实现一个类的封装,并通过掩码结构体的方式实 现了类成员的保护.这一部分,我 ...

  2. C++类的继承与派生

    文章目录 一.继承 二.基类和派生类 三.继承方式 六.多继承 七.应用经验 八.课后作业 九.版权声明 一.继承 继承是面向对象程序设计中最重要的一个概念.继承允许我们根据一个类来定义另一个类,达到 ...

  3. 类的继承和派生java_类的继承和派生

    一.类的继承和派生定义. 继承:保持已有类的特性而构造新类的过程称为继承. 派生:在已有类的基础上新增自己的特性而产生新类的过程称为派生. 被继承的已有类称为基类. 派生出的新类称为派生类. 二.继承 ...

  4. 实验四 类和对象;类的继承和派生;多态性; 接口;构造器应用

    实验四 类和对象:类的继承和派生:多态性: 接口:构造器应用 一.实验目的 1. 掌握类与对象的关系: 2. 掌握类的定义: 3. 掌握对象的声明及使用: 4. 掌握构造方法的概念及调用时机: 5. ...

  5. 【C++进阶知识】C++类的继承和派生

    目录 C++进阶知识系列文章 C++类的继承和派生 基本语法 访问修饰符 构造函数和析构函数 覆盖父类的方法 虚函数和纯虚函数 示例代码 参考资料 C++进阶知识系列文章 C++类的继承和派生 在面向 ...

  6. python 钻石继承_python3--object类,继承与派生,super方法,钻石继承问题

    python3--object类,继承与派生,super方法,钻石继承问题 发布时间:2018-04-13 20:38:05编辑:Run阅读(1914) 昨天内容复习 组合:什么有什么的关系(例:老师 ...

  7. c 自定义实现string类 clear_CC++语言15|类的继承和派生实现代码重用、扩充

    在C++中,继承是一个对象自动获取其父对象的所有属性和行为的过程.通过继承,您可以重用,扩展或修改在其他类中定义的属性和行为.通过继承,可以实现函数重写以及多态. 在C++中,继承另一个类的成员的类称 ...

  8. 任务三 类的继承与派生

    文章目录 第1关:公有继承 -- 学生信息类 相关知识 继承 继承方式 公有继承 编程要求 公有继承 -- 学生信息类 第2关:保护继承 -- 学生信息类 相关知识 保护继承 编程要求 保护继承 -- ...

  9. c++ 类的继承与派生

     一.基本概念 1.类的继承,是新的类从已有类那里得到已有的特性.或从已有类产生新类的过程就是类的派生.原有的类称为基类或父类,产生的新类称为派生类或子类. 2.派生类的声明: class 派生类 ...

最新文章

  1. 红帽虚拟化RHEV-PXE批量安装RHEV-H
  2. Python中enumerate用法详解
  3. Java面试宝典系列之面试复习提纲
  4. Socket网络编程--小小网盘程序(4)
  5. 50句看后可以变换心情豁然开朗的话
  6. 巧用 Trie 树,实现搜索引擎关键词提示功能
  7. Redmi王腾:Redmi 10X还会带来全新滤镜
  8. 从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式
  9. win10开启文件共享服务器,墨涩网 - Windows10开启局域网文件共享功能——墨涩网...
  10. python3操作win32com报错:AttributeError: Open.SaveAs 或者<COMObject Open>“, line 8, in SaveAs pywintypes.c
  11. 时间漩涡的世界 (二)
  12. 已知两点, 求直线斜率
  13. 随便写的:新戏剧之王,一部广义上的烂片观后感
  14. 如何让开源多点成功的几率;开源和 COVID-19: 道高一尺魔高一丈;等开源之道每周评论2020 04 07...
  15. 亿发软件:中大型仓库进出货管理系统解决方案,定制软件让仓储作业高效便捷
  16. 集群qorum数量master-eligible节点掉线解决方法
  17. mysql逆向工程封装_MyBatis高级应用之逆向工程自动生成SQL语句
  18. 计算机主板维修的意义,主板维修个人经验 -电脑资料
  19. 确认,谷歌AI中国中心总裁李佳离职
  20. 一个Vue页面的内存泄露分析

热门文章

  1. 微课|玩转Python轻松过二级(1.3节):编码规范与代码优化建议2
  2. Python+django网页设计入门(4):用户登录与登录验证
  3. iphone天行连接不上服务器未响应,天行连接不上 - 卡饭网
  4. Linux 写入ntfs很慢,ntfs-3g 写入 速度优化
  5. oracle as sydba,Oracle的操作系统认证(/ as sydba 登录方式)
  6. winform中listview选中整行_工作中常见的11个Excel难题,一次解决!
  7. 力扣102. 二叉树的层序遍历(JavaScript)
  8. 有道云笔记Android app离线缓存,有道云笔记Android版升级 增加笔记离线阅读与收藏...
  9. Python多线程笔记——简单函数版和类实现版
  10. mysql profiling_MySQL Profiling 的使用