C++类的继承与派生

迷南。 2023-05-28 11:27 48阅读 0赞

文章目录

  • 一、继承
  • 二、基类和派生类
  • 三、继承方式
  • 六、多继承
  • 七、应用经验
  • 八、课后作业
  • 九、版权声明

一、继承

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

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

二、基类和派生类

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

  1. class <派生类名>:<继承方式> <基类名>
  2. {
  3. // 派生类类体
  4. };

继承方式是 public、protected 或 private 其中的一个,基类是之前定义过的某个类的名称。如果未指定继承方式,则默认为private。

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

示例(book235.cpp)

  1. /* * 程序名:book235.cpp,此程序用于演示C++类的继承与派生。 * 作者:C语言技术网(www.freecplus.net) 日期:20190525 */
  2. #include <stdio.h>
  3. #include <string.h>
  4. class CGirl // 定义超女类
  5. {
  6. public:
  7. char m_name[50]; // 姓名
  8. int m_age; // 年龄
  9. int m_height; // 身高,单位:厘米cm
  10. char m_sc[30]; // 身材,火辣;普通;飞机场。
  11. char m_yz[30]; // 颜值,漂亮;一般;歪瓜裂枣。
  12. int Show() // 显示超女基本信息的成员函数体
  13. {
  14. printf("姓名:%s,年龄:%d,身高:%d,身材:%s,颜值:%s\n",m_name,m_age,m_height,m_sc,m_yz);
  15. }
  16. };
  17. class CKCon:public CGirl // 定义王妃类,从超女类继承
  18. {
  19. public:
  20. char m_ch[50]; // 称号
  21. char m_palace[50]; // 居住的宫殿
  22. int m_sal; // 奉禄
  23. int Show() // 显示王妃的称号、宫殿和奉禄
  24. {
  25. printf("姓名:%s,称号:%s,栖:%s,奉禄:%d两银子。\n",m_name,m_ch,m_palace,m_sal);
  26. }
  27. };
  28. int main()
  29. {
  30. CKCon KCon; // 实例化一个KCon对象
  31. strcpy(KCon.m_name,"杨玉环");
  32. KCon.m_age=28;
  33. KCon.m_height=168;
  34. strcpy(KCon.m_sc,"火辣");
  35. strcpy(KCon.m_yz,"漂亮");
  36. strcpy(KCon.m_ch,"杨贵妃");
  37. strcpy(KCon.m_palace,"华清宫");
  38. KCon.m_sal=10000;
  39. KCon.Show(); // 如果子类中没有Show函数,就会调用父类的Show函数。
  40. }

运行效果

在这里插入图片描述

三、继承方式

当一个类派生自基类,该基类可以被继承为 public、protected 或 private 几种方式,当使用不同类型的继承时,遵循以下几个规则:

1)公有继承(public):当类派生以public方式继承时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。

2)保护继承(protected): 当类派生以protected方式继承时,基类的公有和保护成员将成为派生类的保护成员。

3)私有继承(private):当类派生以private方式继承时,基类的公有和保护成员将成为派生类的私有成员。

我们几乎不使用 protected 或 private 继承,通常使用 public 继承。

五、基类与派生类的指针

基类的指针可以指向基类对象,也可以指向派生类对象,但是不能通过基类的指针访问派生类的成员。

派生类的指针可以指向派生类对象,但不可以指向基类对象。

六、多继承

多继承即一个派生类可以有多个基类,它继承了多个基类的特性。

C++ 类可以从多个基类继承成员,语法如下:

  1. class <派生类名>:<继承方式1><基类名1>,<继承方式2><基类名2>,…
  2. {
  3. // 派生类类体
  4. };

其中,继承方式是 public、protected 或 private 其中的一个,用来修饰每个基类,各个基类之间用逗号分隔。

七、应用经验

类的继承与派生在windows环境开发中用得比较多,在Linux环境下用得比较少,这么多年来,我只是偶尔用一下,大家只要了解继承与派生基本用法就行了,如果在实际开发中真的要用到类的继承,再来研究也不迟,这个没什么技术难度。

八、课后作业

编写示例程序,把本章节介绍的知识点全部演示一遍,用程序演示可以加深理解和映象。

九、版权声明

C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
来源:C语言技术网(www.freecplus.net)
作者:码农有道

如果文章有错别字,或者内容有错误,或其他的建议和意见,请您留言指正,非常感谢!!!

发表评论

表情:
评论列表 (有 0 条评论,48人围观)

还没有评论,来说两句吧...

相关阅读

    相关 c++ 继承派生

    c++类的继承与派生   一、基本概念 1、类的继承,是新的类从已有类那里得到已有的特性。或从已有类产生新类的过程就是类的派生。原有的类称为基类或父类,产生的新类称为

    相关 c++ 继承派生(一)

    要点: 1. 继承与派生的概念 2. 派生类的构造函数和析构函数的执行顺序与规则 3. 多继承的声明与实现 4. 基类成员访问原则 5. 赋值兼容性 6. 虚基类

    相关 C++ 继承派生

    继承性是面向对象程序设计最重要的特性之一,使软件有了可重用性,C++提供的类的继承机制。 继承与派生的概念 一个新类从已有的类那里获得已有的特性,这种现象称为类的继承。

    相关 继承派生

    所谓继承就是从先辈处得到属性和行为特征。类的继承,是新的类从已有类那里得到已有的特征。从已有类产生新类的过程就是类的派生。类的继承与派生机制允许程序员在保持原有类特性的基础上,

    相关 C++ 继承派生

    一、继承方式 公有继承 基类中公有成员和保护成员访问权限不变,私有成员变为不可访问。 私有继承(默认) 基类中公有成员和保护成员变为私有成员,私有成员变为不可