继承【C++】

继承

  • 继承解决了什么问题?
  • 继承的应用场景是什么?
  • 简单举例
  • 继承的关系
  • 语法

继承解决了什么问题?

C++代码的 可重用性 通过继承实现。
新类从已有类获得已有的特性。

继承的应用场景是什么?

继承是一种设计的结果。(举例:牛不能继承拖拉机的耕地能力。)

关系关系说明是否可以继承举例
is - a继承关系(属于)猫咪是一种动物,汽车是一种交通工具。
has - a聚合关系(包含、组合)×汽车由方向盘、轮胎、发动机等组成。

简单举例

类型方法方法
学生吃饭学习
老师吃饭上课

代码演示:

#include <iostream>
using namespace std;class Student
{
public:void study(string course){cout << " i am a student , i am learning " << course << endl;}void eat(string food){cout << " i am eating " << food << endl;}
};class Teachers
{
public:void tech(string course){cout << " i am teacher , i am teaching " << course << endl;}void eat(string food){cout << " i am eating " << food << endl;}
};int main()
{Student s;Teachers t;s.eat("apple");t.eat("banana");
}

运行结果:
运行结果

思考:

void eat(string food)
{cout << " i am eating " << food << endl;
}

eat 方法在两个类中完全相同。

使用继承之后设计如下:

类型方法方法
人类吃饭
学生学习
老师教课

代码演示:

#include <iostream>
using namespace std;class Human //父类 / 基类
{
public:void eat(string food){cout << " i am eating " << food << endl;}
};class Student :public Human	//子类 / 派生类
{
public:void study(string course){cout << " i am a student , i am learning " << course << endl;}
};class Teacher :public Human //子类 / 派生类
{
public:void tech(string course){cout << " i am teacher , i am teaching " << course << endl;}
};int main()
{Student s;Teacher t;s.eat("apple");t.eat("banana");
}

运行结果:
运行结果

继承的关系

子类 --> 继承 --> 自父类。
基类 --> 派生派 --> 生类。

语法

class 派生类名:[继承方式] 基类名
{
派生类成员声明;
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/22774.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML 第二部分 (前端学习)

由于&#xff0c;HTML的部分实在是太多了&#xff0c;第一部分&#xff0c;还没学一半&#xff0c;就已经抄了1w字。而且可能&#xff0c;真正用上的也比较少&#xff0c;更何况&#xff0c;一直坚持&#xff0c;一个不落的学下去&#xff0c;也存在一点注意力分散的困难&#…

暑假第九天打卡

英语&#xff1a; 新东方六级一单元单词刷题复习 离散&#xff1a; 例12 使用消解算法判断下述公式是否是可满足的: 公式 S p∧(p∨q)∧(p∨q)∧(q∨r)∧(q∨r) 解&#xff1a; S p∧(p∨q)∧(p∨q)∧(q∨r)∧(q∨r) //化为主合取式 循环1&#xff1a; S0 S1 {p…

vue前端下载打开文件

<a href"/static/template/公告导入人员模板.xlsx" id"downloadTemplate" style"">下载模版</a>vue前端下载打开文件

低代码平台之流程自动化测试

随着低代码平台的快速发展&#xff0c;开发人员可以便捷、快速地开发流程应用程序&#xff0c;由于业务流程的复杂化和业务需求的不断变化&#xff0c;对业务流程进行优化和改进将更加频繁&#xff0c;在这个过程中&#xff0c;就要求企业的流程测试的效率和质量需要跟上低代码…

svn迁移到git实际操作

1.到svn项目目录右键选中gitbash打开窗口&#xff0c;执行获取用户并映射成git样式账号命令如下: svn log -q | awk -F | /^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" "$2" <"$2"163.cn>…

Python深度强化学习实战 ——OpenAI Gym-CarRacing自动驾驶项目

&#x1f4ad; 写在前面&#xff1a;本篇是关于 OpenAI Gym-CarRacing 自动驾驶项目的博客&#xff0c;面向掌握 Python 并有一定的深度强化学习基础的读者。GYM-Box2D CarRacing 是一种在 OpenAI Gym 平台上开发和比较强化学习算法的模拟环境。它是流行的 Box2D 物理引擎的一个…

HTML <map> 标签

实例 带有可点击区域的图像映射: <img src="planets.jpg" border="0" usemap="#planetmap" alt="Planets" /><map name="planetmap" id="planetmap"><area shape="circle" coords=&q…

领域知识图谱的医生推荐系统:利用BERT+CRF+BiLSTM的医疗实体识别,建立医学知识图谱,建立知识问答系统

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

HTML+CSS+JavaScript:九九乘法表

一、需求如图 二、思路及代码 1、JavaScript代码 稍微刷过一点算法题的小伙伴就很容易想到这题需要利用双层for循环来实现&#xff0c;思路也是比较简单的&#xff0c;我在这里就直接放代码了 不添加CSS渲染的代码如下 <!DOCTYPE html> <html lang"en"&…

HTTP、HTTPS协议详解

文章目录 HTTP是什么报文结构请求头部响应头部 工作原理用户点击一个URL链接后&#xff0c;浏览器和web服务器会执行什么http的版本持久连接和非持久连接无状态与有状态Cookie和Sessionhttp方法&#xff1a;get和post的区别 状态码 HTTPS是什么ssl如何搞到证书nginx中的部署 加…

【探索AI未来】自动驾驶时代下的人工智能技术与挑战

自我介绍⛵ &#x1f4e3;我是秋说&#xff0c;研究人工智能、大数据等前沿技术&#xff0c;传递Java、Python等语言知识。 &#x1f649;主页链接&#xff1a;秋说的博客 &#x1f4c6; 学习专栏推荐&#xff1a;MySQL进阶之路、C刷题集、网络安全攻防姿势总结 欢迎点赞 &…

CSS学习04

文章目录 1.精灵图1.1 为什么需要精灵图1.2 精灵图&#xff08;sprites&#xff09;的使用 2.字体图标2.1 字体图标的产生2.2 字体图标的优点**2.3** **字体图标的下载****2.4** **字体图标的引入**2.5 字体图标的追加 3.CSS 三角3.1 介绍 4.CSS 用户界面样式4.1 鼠标样式 curs…