9.12号

news2024/12/23 20:46:20

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

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

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

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

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

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

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

#include <iostream>
using namespace std;
#define PI 3.14
class Shape               //定义一个图形类
{
protected:
    double girth;                 //周长
    double area;                  //面积
public:
    //无参构造
    Shape(){}
    //有参构造
    Shape(double a,double b):girth(a),area(b){}
    void show()
    {
        cout<<"girth= "<<girth<<endl;
        cout<<"area= "<<area<<endl;
    }
    //析构函数
    ~Shape()
    {
        cout<<"析构函数"<<endl;
    }
};
//定义圆形类,继承图形类
class Circle : public Shape
{
private:
    double radius ;               //圆的半径
public:
    //无参构造
    Circle(){}
    //有参构造
    Circle(int r):radius(r)
    {
        cout<<"有参构造"<<endl;
    }
    //获取周长
     void get_girth()
    {
        girth=PI*(2*radius);
    }
    //获取面积
    void  get_area()
    {
        area=PI*(radius*radius);

    }
    //拷贝构造
    Circle(const Circle &other):radius(other.radius)
    {
        cout<<"拷贝构造"<<endl;
    }
    void display()
    {
        cout<<"girth= "<<girth<<endl;
        cout<<"area= "<<area<<endl;
    }

};
class Rect :public Shape          //定义一个矩形类
{
private:
    double width;         //宽度
    double height;         //长度
public:
    //无参构造
    Rect(){}
    //有参构造
    Rect(double w,double h):width(w),height(h)
    {
            cout<<"有参构造"<<endl;
    }
    //获取周长
     void get_girth()
    {
        girth=(width+height)*2;
    }
    //获取面积
    void  get_area()
    {
        area=height*width;

    }
    //拷贝构造
    Rect(const Rect &other):width(other.width),height(other.height)
    {
        cout<<"拷贝构造"<<endl;
    }

    void display()
    {
        cout<<"girth= "<<girth<<endl;
        cout<<"area= "<<area<<endl;
    }


};
int main()
{
    Shape s(0,0);
    Circle c1(2);
    c1.get_girth();
    c1.get_area();
    c1.display();
    Circle c2=c1;
    c2.get_girth();
    c2.get_area();
    c2.display();

    Rect r1(4,9);
    r1.get_girth();
    r1.get_area();
    r1.display();
    Rect r2;
    r2=r1;
    r2.get_girth();
    r2.get_area();
    r2.display();
    return 0;
}

2.思维导图

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

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

相关文章

java.lang.NoClassDefFoundError: com/sun/jna/Callback

添加依赖 <dependency><groupId>net.java.dev.jna</groupId><artifactId>jna</artifactId><version>5.13.0</version></dependency> 其他版本查看 https://mvnrepository.com/artifact/net.java.dev.jna/jna

leetcode 第454题.四数相加II

给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 454. 四数相加 II - 力扣&#xff08;LeetCode&#xf…

荣23转债上市价格预测

荣23转债113676 基本信息 转债名称&#xff1a;荣23转债&#xff0c;评级&#xff1a;AA-&#xff0c;发行规模&#xff1a;5.76亿元。 正股名称&#xff1a;荣晟环保&#xff0c;今日收盘价&#xff1a;15.64元&#xff0c;转股价格&#xff1a;15.74元。 当前转股价值 转债面…

Redis 缓存过期淘汰策略

面试题&#xff1a; 生产上你们的redis内存设置多少&#xff1f;如何配置、修改redis的内存大小如果内存满了你怎么办redis清理内存的方式&#xff1f;定期出测除和惰性曲除了解过吗redis缓存淘太策略有哪些&#xff1f;分别是什么&#xff1f;你用那个&#xff1f;redis的LRU…

阿里云CDN架构接入WAF应用防火墙案例实践

文章目录 1.网站架构变化2.配置WAF应用防火墙2.1.配置网站接入WAF防火墙2.2.WAF防火墙生成CNAME地址2.3.配置WAF防火墙HTTPS证书2.4.WAF防火墙开启HTTP回源SLB 3.配置CDN加速器回源WAF防火墙4.将域名DNS解析指向CDN的域名5.测试网站是否能正常访问6.模拟攻击观察WAF的作用7.解除…

4.5 指针与数组的转换

typedef struct {unsigned char head_first; //包头首字节unsigned char head_last; //包头末字节unsigned char ad[5][96][2];unsigned char end_first; //包尾首字节unsigned char end_last; //包尾末字节 …

python-爬虫-urllib3

导入模块 import urllib3urllib3&#xff1a;功能强大、条理清晰、用于HTTP客户端的python网络请求库 重要特征 1.线程安全 2.连接池 3.客户端SSL/TLS验证 4.使用分段编码长传文件 5.重试请求和处理HTTP复位的助手 6.支持gzip和deflate编码 7.HTTP和SOCKS的代理支持 8.100%的…

【送书活动】借助ChatGPT和Python,轻松实现办公自动化✨

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

群晖(Synology)NAS 后台安装 Docker 后配置 Activemq Artemis

因最近需要在本地调试消息策略。 如果搞个服务器装就太辛苦了&#xff0c;所以就想到了 NAS&#xff0c;我们的 NAS 上已经装了 Docker&#xff0c;我们直接运行一个 Activemq Artemis 的镜像不就好了。 下载镜像 在进入 NAS 的容器管理后&#xff0c;访问 Registry。 然后…

弱引用回调引发的坑

在开发中&#xff0c;常常会用到回调模型&#xff0c;为了避免回调监听未被主动释放&#xff0c;导致内存泄露&#xff0c;我们会用到 WeakReference 来存放回调引用&#xff0c;然而要注意的是回调类被回收的坑。本文记录笔者开发中遇到弱引用回调被回收的坑及思考。 奇怪的现…

删除的快捷键ctrl加什么?快捷键删除的文件怎么恢复

在许多情况下&#xff0c;我们可以利用电脑的快捷键&#xff0c;即键盘上的组合按键&#xff0c;来执行特定的操作&#xff0c;例如使用组合键删除文件。当我们熟练掌握这些快捷键时&#xff0c;能够显著提升工作效率。那么&#xff0c;你知道ctrl哪个键可以删除文件吗&#xf…

花西子口碑下降,国产化妆品应该如何增加自己的品牌曝光

过去几天&#xff0c;因为花西子一支眉笔克重单价比大牌还贵&#xff0c;而某直播间的主播在面对消费者的质疑时&#xff0c;没有选择解答用户的疑惑&#xff0c;而是质疑消费者的工作能力等等&#xff0c;导致花西子的口碑下降&#xff0c;而主播的印象也逐渐负面&#xff0c;…

【四】3D Object Model之创建Creation——read_object_model_3d()算子

&#x1f60a;&#x1f60a;&#x1f60a;欢迎来到本博客&#x1f60a;&#x1f60a;&#x1f60a; &#x1f31f;&#x1f31f;&#x1f31f; Halcon算子太多&#xff0c;学习查找都没有系统的学习查找路径&#xff0c;本专栏主要分享Halcon各类算子含义及用法&#xff0c;有…

一、Mediasoup源码介绍

一、Mediasoup 整体结构 整个Mediasoup库通过Nodejs管理&#xff0c;比如整体逻辑、worker、router、producer、consumer...都是通过JS进行管理的。 其底层的数据传输是通过C部分进行控制的&#xff0c;通过NodeJs来控制C部分&#xff0c;以实现整体的数据传输效 二、Mediasou…

【C语言】指针详解(3)

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解指针(2)&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 一.函数指针数组二.指向函数指针数组的指针&#xff08;不重要&#xff09;三.回调函数 一.函…

9.13 | day 6 |day 45| to 完全平方数

● 70. 爬楼梯 &#xff08;进阶&#xff09; class Solution {public int climbStairs(int n) {int[] dp new int[n1];//设置背包容量&#xff1a;n个int m 2;//有两个物品&#xff0c;注意这是一个完全背包问题dp[0] 1;//initialize ​for(int i 1;i<n;i){//遍历背包f…

前缀和思想

何为前缀和 有一个数组a, 为 ...... 前缀和 ...... 有两个问题: 1.如何求? 只需要从前往后遍历,令 就可以了,最开始是 ,定义 0 2. 有什么用? 能够快速地求出原数组中某一段的和,预处理的…

利用procdump+Mimikatz绕过杀软获取Windows明文密码

利用procdumpMimikatz绕过杀软获取Windows明文密码 1.原理2.实操部分 1.原理 Mimikatz是从lsass.exe中提取明文密码的&#xff0c;当无法在目标机器上运行Mimikatz时&#xff0c;我们可使用ProcDump工具将系统的lsass.exe进程进行转储&#xff0c;导出dmp文件&#xff0c;拖回…

计算机网络工程毕业设计题目选题大全

文章目录 0 简介1 如何选题2 最新网络工程选题2.1 Java web - SSM 系统2.2 大数据方向2.3 人工智能方向2.4 其他方向 4 最后 0 简介 学长搜集分享最新的网络工程专业毕设毕设选题&#xff0c;难度适中&#xff0c;适合作为毕业设计&#xff0c;大家参考。 学长整理的题目标准…

windows 下使用virtualbox7.0设置共享文件夹详细,绝对好用

1、打开virtualbox软件 &#xff0c;点击设置-》存储-》控制器-》新建虚拟光驱&#xff0c;如下图所示 2、 重启virtualbox&#xff0c;重启方式可使用 enter键方式&#xff0c;会弹出一个小窗口&#xff0c;在小窗口中点击 设备-》安装增强功能 点击后&#xff0c;进入linux…