初步入门C ++之继承的概念

news2024/9/9 4:12:31

继承

​ 继承,他的功能就如同他的名字一样,可以继承一个类的数据和方法,然后增添一些自己独有的数据和方法:

根据我们之前讲解初步入门C++之类的例子,假如我们现在有一个长方体的类,它和长方型类唯一不一样的数据就是它多了一个高,同时多了一个打印体积的方法,这时候我们就可以用到继承了,如下:

#include <iostream>

class rect
{
public:
    int     x;
    int     y;
    int     area;

    rect()	
    {
        std::cout << "rect 类实例已被创建" << std::endl;
        x = 0;
        y = 0;
    }
    rect(int x_input, int y_input)	
    {
        std::cout << "rect 类实例已被创建" << std::endl;
        x = x_input;
        y = y_input;
    }

    void area_printf()
    {
        area = x * y;
        std::cout << "该实例的面积是:" << area << std::endl;
        return;
    }

    ~rect()
    {
        std::cout << "rect 类实例已被释放" << std::endl;
        return;
    }
};

class rect_body : public rect
{
public:
    int     highth;
    int     volume;

    rect_body()
    {
        std::cout << "rect_body 类实例已被创建" << std::endl;
        x = 0;
        y = 0;
        highth = 0;
    }
    rect_body(int input_x, int input_y, int input_z)
    {
        std::cout << "rect_body 类实例已被创建" << std::endl;
        x = input_x;
        y = input_y;
        highth = input_z;
    }

    void volume_printf()
    {
        volume = x * y * highth;
        std::cout << "该实例的体积是:" << volume << std::endl;
        return;
    }
    ~rect_body()
    {
        std::cout << "rect_body 类实例已被释放"  << std::endl;
        return;
    }

};

int main(int argc, char* argv[])
{
    rect_body   rect_body_1(10, 3, 4);

    rect_body_1.volume_printf();

    return 0;
}

在这里插入图片描述

从执行结果来看,我们可以看到,因为 rect_body 类是继承 rect 类得来的,所以我们创建一个 rect_body 类的时候,会先建立 rect 类,然后往上面加入 rect_body 类的数据和方法,这,就是继承。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

屏幕录制与视频编辑的新纪元Camtasia Studio 2024

在数字化时代&#xff0c;视频已成为我们日常工作和生活中不可或缺的一部分。无论是教育、培训、营销还是娱乐&#xff0c;高质量的视频内容都发挥着至关重要的作用。而提到屏幕录制和视频编辑软件&#xff0c;Camtasia Studio无疑是一个家喻户晓的名字。随着2024年新版本的发布…

【Vue3】自定义组件

【Vue3】自定义组件 背景简介开发环境开发步骤及源码 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。本文…

Java基本语法学习的案例练习

本文是在学习过C语言后&#xff0c;开始进行Java学习时&#xff0c;对于基本语法的一些案例练习。案例内容来自B站黑马编程课 1.HelloWorld 问题介绍;请编写程序输出“HelloWorld”. public class HelloWorld { public static void main(String[] args) { System.out.print…

树状机器学习模型综述(含python代码)

树状机器学习模型综述 树状模型是机器学习中一种非常重要的算法类别&#xff0c;因其直观的结构和良好的可解释性而广泛应用于分类和回归任务。本文将综述几种常见的树状模型&#xff0c;包括决策树、随机森林、LightGBM、XGBoost和CatBoost&#xff0c;讨论它们的原理、用途以…

高品质定制线缆知名智造品牌推荐-精工电联:高压线缆行业定制服务的领航者

定制线缆源头厂家推荐-精工电联&#xff1a;高压线缆行业定制服务的领航者 在当今这个高度信息化的社会&#xff0c;电力传输与分配系统的稳定运行至关重要。作为连接各个电力设备的纽带&#xff0c;高压线缆的质量直接关系到电力系统的安全性和稳定性。在定制高压线缆行业中&a…

【RK3568】点亮eDP屏幕+双屏异显

一、驱动eDP屏幕 一般来说&#xff0c;屏幕的规格书中会找到屏幕的相关参数&#xff0c;如没有&#xff0c;也可直接找屏幕厂商要&#xff0c;首先打开屏幕的规格书&#xff0c;搜索EDID Table&#xff0c;可找到如下信息&#xff1a; &#xff08;1&#xff09;显示时序配置 将…

越是熟人之间,越要注意这三个方面

不管什么时候&#xff0c;不管与谁相处&#xff0c;社交的边界和底线永远都是不变的。 对待陌生人的时候&#xff0c;我们总会按照既定的章法和礼节行事&#xff0c;可是在对待熟人的时候&#xff0c;很多人却忘了这些章法和礼节。虽然彼此熟悉了&#xff0c;不需要那么在乎章…

狗都能看懂的Imitation Learning的讲解

上一篇博客讲述了奖励稀疏时的训练方法。实际场景中&#xff0c;可能难度还会更大一些。很多场景很难有一个明确的reward&#xff0c;甚至没有reward。那么这里就提出模仿学习&#xff0c;即agent模仿expert的操作。具体两个方法是&#xff1a;Behavior Cloning、Inverse Reinf…

从0到100:旅拍小程序开发笔记(上)

背景调研 旅拍店或者摄影师可以在小程序上设置自己的可预约时间&#xff0c;价格&#xff0c;拍摄介绍&#xff0c;并定义不同的套餐(服装套数&#xff0c;底片张数&#xff0c;精修数量&#xff0c;取景风格&#xff0c;套餐价格等)&#xff0c;顾客可以根据套餐内容和日程安…

定制化Windows系统

定制化Windows系统 1、定制化需求介绍 预定义安装常用软件的原版操作系统&#xff0c;节省花费的时间。定制前提&#xff0c;你需要1块硬盘、1台&#xff08;2台&#xff09;测试电脑、一个PE盘&#xff08;wepe最好&#xff09;&#xff0c;原版系统镜像&#xff0c;虚拟光驱…

鸿蒙应用框架开发【选择并查看文档与媒体文件】 本地数据与文件

选择并查看文档与媒体文件 介绍 应用使用ohos.file.picker、ohos.file.fs等接口&#xff0c;实现了picker拉起文档编辑保存、拉起系统相册图片查看、拉起视频并播放的功能。 效果预览 使用说明&#xff1a; 在首页&#xff0c;应用显示查看最近打开文件功能的跳转按钮&…

GD32手把手教你移植FlashDB(片外Flash) -- 3.FlashDB使用

GD32手把手教你移植FlashDB(片外Flash) – 1.FlashDB-sfud移植 GD32手把手教你移植FlashDB(片外Flash) – 2.FlashDB移植 GD32手把手教你移植FlashDB(片外Flash) – 3.FlashDB使用 示例代码: https://gitee.com/ljmRD/GD32F427_FlashDB 3.FlashDB使用 main() /*************…

浅谈取样器之SSH Command

浅谈取样器之SSH Command JMeter的SSH Command取样器是一个强大的功能&#xff0c;允许用户在JMeter测试计划中执行远程SSH命令。这对于需要与Linux/Unix服务器交互以执行系统命令、脚本或者进行性能测试验证的场景尤为有用。通过这个取样器&#xff0c;您可以集成服务器端操作…

Linux中进程通信之信号

信号 信号通信&#xff0c;其实就是内核向用户空间进程发送信号&#xff0c;只有内核才能发信号&#xff0c;用户空间进程不能发送信号。 关于信号指令的查看&#xff1a;kill -l 例如我们之前使用的kill -9 pid用于杀死一个进程 使用一个死循环 成功发送kill -9指令&#x…

对于AI大模型发展态势的几点认识

本期内容从AI大模型产业的视角出发&#xff0c;全面审视该产业的发展现状&#xff0c;深入剖析其成长轨迹和未来趋势&#xff0c;旨在为人工智能产业的参与者提供一个全面的视角&#xff0c;更好地理解AI大模型产业的复杂性、动态性和潜力&#xff0c;以及如何在这个快速变化的…

Ruoyi 快速开发平台

Ruoyi 快速开发平台 一、官网二、准备工作2.1 环境要求2.2 必要配置 三、运行系统3.1 后端运行3.2 前端安装及运行 四、自定义开发4.1 新增业务模块4.2 代码生成4.2.1 创建菜单4.2.2 后端代码4.2.3 前端代码 一、官网 链接: 前后端分离版本 回到目录 二、准备工作 2.1 环境要…

UDP服务器端bind失败问题

本人使用microchip芯片开发&#xff0c;使用UDP虚拟机通讯&#xff0c;经常提示bind失败&#xff0c;返回-1&#xff0c;尝试了以前UDP作为客户端使用时正常&#xff0c;故硬件链路没问题。 一、可能有几个原因&#xff1a; 端口实际上被占用&#xff1a;最明显的原因是端口真…

基于入侵野草算法的KNN分类优化matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 入侵野草算法 4.2 K近邻分类器&#xff08;KNN&#xff09; 4.3 基于IWO的KNN分类优化 5.完整程序 1.程序功能描述 基于入侵野草算法的KNN分类优化。其中&#xff0c;入侵野草算法是一…

GEE APP:利用谷歌地球引擎实现更有效的草原管理:决策支持应用视角

简介 草原占地球表面和农田的很大一部分,对人类福祉和畜牧业至关重要。由于牧区基础设施不发达、通信不畅,牧民和草原管理部门在有效控制牧民放牧行为和草原利用方面面临挑战。要解决这一问题,促进草原的可持续利用并保护其生态系统服务,就需要基于云的放牧管理和决策支持…