c++day5---9.12

news2024/12/23 17:14:38

实现一个图形类(Shape),包含受保护成员属性:周长、面积,

                公共成员函数:特殊成员函数书写

定义一个圆形类(Circle),继承自图形类,包含私有属性:半径

                公共成员函数:特殊成员函数、以及获取周长、获取面积函数

定义一个矩形类(Rect),继承自图形类,包含私有属性:长度、宽度

                公共成员函数:特殊成员函数、以及获取周长、获取面积函数

在主函数中,分别实例化圆形类对象以及矩形类对象,并测试相关的成员函数。

 

#include <iostream>

using namespace std;

class Shape//实现一个图形类
{
protected:
    double zc;//周长
    double mj;//面积
public:
    Shape()//无参构造
    {
        zc=5.21;
        mj=13.14;
        cout<<"图形无参构造成功"<<endl;
    }

    Shape(double a,double b):zc(a),mj(b)//有参构造
    {
        cout<<"图形有参构造成功"<<endl;
    }

    ~Shape()//析构函数
    {
        cout<<"图形析构函数释放成功"<<endl;
    }

    Shape(const Shape &other):zc(other.zc),mj(other.mj)//拷贝构造
    {
        cout<<"图形拷贝构造成功"<<endl;
    }

    Shape & operator=(const Shape &other)//拷贝赋值
    {
        if(this != &other)          //确定不是自己给自己赋值
        {
            this->zc = other.zc;
            this->mj = other.mj;
        }
        cout<<"拷贝赋值函数成功"<<endl;
        return  *this;               //返回自身引用
    }
    void show()
    {
        cout<<"周长为:"<<zc<<"   面积为:"<<mj<<endl;
    }
};

class Circle:public Shape//定义一个圆形类,继承图形类
{
private:
    double bj;//半径
public:
    Circle()//无参构造
    {
        cout<<"圆形无参构造成功"<<endl;
    }

    Circle(double a,double b,double c):Shape(a,b),bj(c)//有参构造
    {
        cout<<"圆形有参构造成功"<<endl;
    }

    ~Circle()//析构函数
    {
        cout<<"圆形析构函数释放成功"<<endl;
    }

    Circle(const Circle &other):Shape(other.zc,other.mj),bj(other.bj)//拷贝构造
    {
        cout<<"圆形拷贝构造成功"<<endl;
    }

    Circle & operator=(const Circle &other)//拷贝赋值
    {
        if(this != &other)          //确定不是自己给自己赋值
        {
            this->zc = other.zc;
            this->mj = other.mj;
            this->bj = other.bj;
        }
        cout<<"拷贝赋值函数成功"<<endl;
        return  *this;               //返回自身引用
    }

    double get_zh()//获取周长函数
    {
        cout<<"获取周长成功"<<Circle::zc<<endl;
        return Circle::zc;
    }
    double get_mj()//获取面积函数
    {
        cout<<"获取面积成功"<<Circle::mj<<endl;
        return Circle::mj;
    }
    void show()
    {
        cout<<"半径为:"<<bj<<endl;
        cout<<"继承的周长为:"<<zc<<"   继承的面积为:"<<mj<<endl;
    }
};

class Rect:public Shape//定义一个矩形类,继承图形类
{
private:
    double cd;//长度
    double kd;//宽度
public:
    Rect()//无参构造
    {
        cout<<"矩形无参构造成功"<<endl;
    }
    Rect(double a,double b,double c,double d):Shape(a,b),cd(c),kd(d)//有参构造
    {
        cout<<"矩形有参构造成功"<<endl;
    }
    ~Rect()//析构函数
    {
        cout<<"矩形析构函数释放成功"<<endl;
    }
    Rect(const Rect &other):Shape(other.zc,other.mj),cd(other.cd),kd(other.kd)//拷贝构造
    {
        cout<<"矩形拷贝构造成功"<<endl;
    }
    Rect & operator=(const Rect &other)//拷贝赋值
    {
        if(this != &other)          //确定不是自己给自己赋值
        {
            this->zc = other.zc;
            this->mj = other.mj;
            this->cd = other.cd;
            this->kd = other.kd;
        }

        cout<<"拷贝赋值函数成功"<<endl;
        return  *this;             //返回自身引用
    }
    double get_zh()//获取周长函数
    {
        cout<<"获取周长成功"<<Rect::zc<<endl;
        return Rect::zc;
    }
    double get_mj()//获取面积函数
    {
        cout<<"获取面积成功"<<Rect::mj<<endl;
        return Rect::mj;
    }
    void show()
    {
        cout<<"长为:"<<cd<<"   宽为:"<<kd<<endl;
        cout<<"继承的周长为:"<<zc<<"   继承的面积为:"<<mj<<endl;
    }
};

int main()
{
    Shape s;
    s.show();
    Shape s1={22.2,33.3};
    s1.show();
    s=s1;
    s1.show();
    Circle c;
    Circle c1={c.get_zh(),c.get_mj(),7};
    c1.show();
    Rect r;
    Rect r1={r.get_zh(),r.get_mj(),6,8};
    r1.show();
    return 0;
}

五、思维导图

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

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

相关文章

AMD R7 7840HS 核显 780M 性能怎么样

目录 1. 基本数据 2.性能对比 2.1对比一 2.2 对比二 3.综合 1. 基本数据 2.性能对比 2.1对比一 锐龙77840h相当于i几 答&#xff1a;类似于I7-12700H R7 7840H介于13500-13700之间。 R7 7840H是AMD锐龙旗下高性能的一款处理器&#xff0c;主要应用在主流的游戏本中。各…

教育领域数据可视化:点亮知识之路

教育领域一直以来都在不断进步和演变&#xff0c;而数据可视化技术正在为这一领域带来一场革命。在过去的几年里&#xff0c;教育者们越来越意识到&#xff0c;通过将教育数据转化为可视化图表和图形&#xff0c;可以更好地理解学生的表现、需求和趋势&#xff0c;从而提供更好…

03-rnn-由国家名和开始字符生成1个name

一、查漏补缺、熟能生巧&#xff1a; 1.原来没有optimizer.step()的时候&#xff0c;也可以这么做&#xff1a; 二、具体代码&#xff1a; NLP From Scratch: Generating Names with a Character-Level RNN — PyTorch Tutorials 2.0.1cu117 documentation

2023年全国大学生电子设计竞赛-E题国家级二等奖

系列文章目录 文章目录 系列文章目录前言一、又一年电赛过去了二、E题注意事项1.注意事项 总结 前言 一、又一年电赛过去了 比较幸运的是大学生涯作为电子类学生的最后一次电赛&#xff0c;还能拿到国二&#xff0c;跟去年21年也是一样&#xff0c;两年国二&#xff1b;一路来…

【C++】类和对象核心总结

类和对象核心知识目录&#xff1a; 一、面向过程和面向对象初步认识 二、类的引入定义&#xff08;struct > class&#xff09; 2.1自定义类型 struct 和 class 的区别 2.2类放在内存中的什么存储区&#xff1f; 2.3类中函数定义的方式 2.3.1声明和定义分离&#xff0…

Jmeter+Ant+Git+Jenkins持续集成介绍

一 简介 1.什么是ant? ant是构建工具 2.什么是构建 概念到处可查到&#xff0c;形象来说&#xff0c;你要把代码从某个地方拿来&#xff0c;编译&#xff0c;再拷贝到某个地方去等等操作&#xff0c;当然不仅于此&#xff0c;但是主要用来干这个 3.ant的好处 跨平台 -…

投资理财基础知识分享(二)

大家好&#xff0c;我是财富智星&#xff0c;今天跟大家继续分享投资理财基础知识&#xff0c;今天介绍下投资理财都有哪些产品可以购买的问题&#xff1a; 满足收益性的资产 货币基金和保险是直接购买的投资产品&#xff0c;没有太多技巧可言。 然而&#xff0c;其他投资产品的…

springboot集成Logback 日志写入数据库

springboot集成Logback 日志写入数据库 引入maven依赖 <!-- logback日志--><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency>&l…

【C++从0到王者】第二十九站:二叉搜索树常见题

文章目录 一、根据二叉树创建字符串二、二叉树的最近公共祖先1.解法一&#xff1a;递归2.解法二&#xff1a;借助栈来寻找路径 三、二叉搜索树与双向链表四、前序与中序构建二叉树五、中序与后序构建二叉树 一、根据二叉树创建字符串 题目链接&#xff1a;力扣第606题&#xff…

fabic 在canvas中绘制group元素,如何获取并修改group中某一元素的填充色

1、创建一个Fabric组并向其添加元素 2、标识要修改的组中的特定元素 3、访问并修改该元素的填充颜色 下面是JavaScript中的一个代码示例: // Create a Fabric.js canvas var canvas new fabric.Canvas(canvas);// Create a rectangle and a circle var rectangle new fabric…

Linux——环境变量

✅<1>主页&#xff1a;&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;Linux——环境变量 ☂️<3>开发环境&#xff1a;Centos7 &#x1f4ac;<4>前言&#xff1a;环境变量(environment variables)一般是指在操作系统中用来指定操作…

2023年一级建造师建设工程经济真题

2023年一级建造师建设工程经济真题 1.根据《建设工程工程量清单计价规范》规定&#xff0c;代表专业工程的项目编码是 ()。 A、1&#xff0c;2 B、3&#xff0c;4 C、5&#xff0c;6 D、7&#xff0c;8&#xff0c;9 【答案】B 2.某公司希望所投资项目在第5年末回收1000万…

银行笔试篇---职业能力测试(行测)

数字推理 数字推理可分为等差数列、等比数列、和数列、积数列、幂数列以及分数数列六类&#xff0c;做题时的总体原则为&#xff1a; 关键点1&#xff1a;凡是一次变化找不到规律的&#xff0c;直接放弃&#xff01;所谓一次变化指的是&#xff1a;1.通过一次相邻两数作差、作…

成绩定级脚本(Python)

成绩评定脚本 写一个成绩评定的python脚本&#xff0c;实现用户输入成绩&#xff0c;由脚本来为成绩评级&#xff1a; #成绩评定脚本.pyscoreinput("please input your score:") if int(score)> 90:print("A") elif int(score)> 80:print("B&…

Pytest系列- assert断言详细使用(4)

简介 在断言方面&#xff0c;pytest框架比其他类似的框架&#xff08;比如unittest&#xff09;更加简洁&#xff0c;易用&#xff0c;我想这是选择pytest作为自动化测试框架之一的原因之一。pytest的assert断言关键字支持使用python内置的assert表达式。可以理解为pytest的断…

合宙Air724UG LuatOS-Air lvgl7-lvgl(矢量字体)

如何用开发板实现lvgl加载外部矢量字体功能 目录名称 如何用开发板实现lvgl加载外部矢量字体功能 简介材料准备API 说明步骤 1. 将字库芯片接在模块spi上2. 版本定制3. 初始化spi4. 设置字体5.字体使用测试固件和脚本显示效果字号灰度最佳粗细值对应表常见问题 1. 设置68号字体…

Aapache Tomcat AJP __ 文件包含漏洞 __ CVE-2020-1938

Aapache Tomcat AJP __ 文件包含漏洞 __ CVE-2020-1938 漏洞描述 Ghostcat是Chaitin Tech安全研究员发现的Tomcat中的一个严重漏洞&#xff0c;由于Tomcat AJP协议中的缺陷&#xff0c;攻击者可以读取或包含Tomcat的Webapp目录中的任何文件。例如&#xff0c;攻击者可以读取 …

9月12日华为新品发布会

华为MATE 60 Pro作为华为Mate系列的最新力作&#xff0c;备受期待。这款手机在设计和功能上都带来突破&#xff0c;大家都认为是遥遥领先。 9月12日下午&#xff0c;大家期待的华为发布会&#xff0c;实际上是问界新M7发布会。虽然此前已有消息称&#xff0c;此次发布不包括手机…

4.3-内置后置PostProcess处理器深度讲解

在reader里面注册了很多Bean定义 reader会调取register()来注册配置类 调用上句&#xff0c;就会把配置类注册到BeanDefinitionMap中去 配置类有了、解析配置类的处理器有了 然后&#xff0c; 在第三步refresh() 进行IOC容器刷新中的invokeBeanPostProcessors(beanFactory…

Java密码学之加解密

前篇&#xff1a;Java密码学之数字签名_东皋长歌的博客-CSDN博客 日常开发中用的比较多的功能点&#xff0c;加解密数据&#xff0c;用Java实现也是很快很实用。 下面记录一下加解密数据的过程。 1&#xff0c;创建密钥对生成器 KeyPairGenerator keyPairGen KeyPairGener…