首页 > 其他分享 >第十八日

第十八日

时间:2023-05-18 19:11:18浏览次数:19  
标签:const 函数 Point double 第十八 公有 Circle

以点类Point为基类公有派生圆类Circle,并以圆类Circle为基类公有派生球类Sphere,main(void)函数完成对其的测试。

Point类结构说明:

Point类的数据成员包括:
①私有数据成员:X坐标x(double型),Y坐标y(double型)。
Point类成员函数包括:
①有参构造函数Point(double, double)和拷贝构造函数Point(const  Point  &),其中有参构造函数参数默认值为0,输出信息“Point Constructor run”,拷贝构造函数输出信息“Point CopyConstructor run”
②析构函数,析构函数输出信息“Point Destructor run”
③公有函数成员:void  setX(double)和double getX() const分别返回和设置X坐标
④公有函数成员:void  setY(double)和double getY() const分别返回和设置Y坐标
⑤公有成员函数void show() const用于显示点的坐标信息,显示格式为:(x,y)
⑥公有成员函数double area() const用于计算点的面积,点的面积为0

class Circle : public Point
{
    protected:
    double radius = 0;
    static double PI;
    public:
    Circle (double a = 0, double b = 0, double c = 0)
    {
        x = a;
        y = b;
        radius = c;
        cout << "Circle Constructor run" << endl;
    }
    Circle (Circle &r) : Point(r)
    {
        x = r.x;
        y = r.y;
        radius = r.radius;
        cout << "Circle CopyConstructor run" << endl;
    }
    ~Circle()
    {
        cout << "Circle Destructor run" << endl;
    }
    void setRadius(double a)
    {
        radius = a;
    }
    double getRadius() const
    {
        return radius;
    }
    double circumference() const
    {
        return PI * 2 * radius;
    }
    double area() const
    {
        return radius * radius * PI;
    }
    void show() const
    {
        cout << "("<< x << ","  << y << "),"<< "Radius="<< radius;
    }
};
double Circle::PI = 3.14159;
class Sphere : public Circle
{
    public:
    Sphere(double a = 0, double b = 0, double c = 0)
    {
        x = a;
        y = b;
        radius = c;
        cout << "Sphere Constructor run" << endl;
    }
    Sphere(Sphere &r) : Circle(r)
    {
        x = r.x;
        y = r.y;
        radius = r.radius;
        cout << "Sphere CopyConstructor run" << endl;
    }
    ~Sphere()
    {
        cout << "Sphere Destructor run" << endl;
    }
    double volume() const
    {
        return 4.0/3*PI*radius*radius*radius;
    }
    double area() const
    {
        return 4.0*PI*radius*radius;
    }
};

 

标签:const,函数,Point,double,第十八,公有,Circle
From: https://www.cnblogs.com/gjsgjs/p/17413060.html

相关文章

  • kettle从入门到精通 第十八课 kettle Metadata Injection
    1、MetadataInjection类似于java里面的模版,设置通用的模版,通过输入不同的数据,得到不同的结果。本示例演示两个字段拼接成一个新字段。2、设置模版,设置模版时,只需要根据自己的需要拉取一些控件,以及设置控件之间的关系,无需设置控制的具体属性,有个前提用到的控件需要支持元数据注......
  • 打卡第十八天
    定义基类Point和派生类Circle,求圆的周长一、1.定义基类Point(点)和派生类Circle(圆),求圆的周长。2.Point类有两个私有的数据成员floatx,y;3.Circle类新增一个私有的数据成员半径floatr和一个公有的求周长的函数getCircumference();二、三、 #include<iostream>#include<iom......
  • 每日打卡一小时(第十八天)
    一.问题描述6-2【CPP0025】以点类Point及平面图形类Plane为基础设计圆类Circle、以点类Point及平面图形类Plane为基类公有派生圆类Circle,main(void)函数完成对其的测试。Point类结构说明: Point类的数据成员包括:①私有数据成员:X坐标x(double型),Y坐标y(double型)。Point类......
  • C++打卡第十八天
    一、问题描述。一个口袋中装有12个球,三个红的,三个白的,六个黑的,现在从中取八个,问有多少种取法。二、设计思路①、我们可以通过定义三个变量,应用循环结构依次遍历可以出现的情况。②、颜色相同的小球大小形状是相同的,那么在相同颜色中选球就是和顺序无关。③、可以通过用所拿出的总......
  • Android提高第十八篇之自定义PopupWindow实现的Menu(TabMenu)
    用过UCWEB-Android版的人都应该对其特殊的menu有印象,把menu做成Tab-Menu(支持分页的Menu),可以容纳比Android传统的menu更丰富的内容(Android的menu超过6项则缩略在[更多]里),本文参考网上的例子(作者:CoffeeCole,email:[email protected]),对例子进行简化以及封装,使其作为一个复......
  • Python之路【第十八篇】:Web框架们
    Python的WEB框架1.BottleBottle是一个快速、简洁、轻量级的基于WSIG的微型Web框架,此框架只由一个.py文件,除了Python的标准库外,其不依赖任何其他模块。 pipinstallbottleeasy_installbottleapt-getinstallpython-bottlewgethttp://bottlepy.org/bottle.py......
  • 湖南省第十八届大学生计算机程序设计竞赛(HNCPC2022)
    发现没有题解,我来随便记录下湖南省第十八届大学生计算机程序设计竞赛(HNCPC2022)VP情况队友卡I占了机时导致罚时有点爆炸,也是策略的失误6题837罚时补到GH就不补个位数题J判断斐波那契区间有没有一段的和等于\(n\)由于\(n\leq10^{15}\)直接暴力即可#include<bits/stdc++.......
  • 如何使用webgl(three.js)实现3D消防、3D建筑消防大楼、消防数字孪生、消防可视化解决
    序:又是很久没出随笔文章了,一篇文章有时候整理一天,实在是抽不出来时间。最近在回顾几年前的项目时,发现这个智慧三维消防可视化项目很有回顾价值,索性就拿出来讲讲......
  • 第十八天笔记
    面向对象概述(oop)面向对象是一种思维,将对应的你需要用到的对象进行提取,将对应方法综合到对应的对象中,在需要调用对应的方法的时候去找对应的对象(万物皆对象(任何东西都可抽......
  • 第十八章 多重继承与虚继承
    第十八章用于大型程序的工具大规模应用程序的特殊要求包括:在独立开发的子系统之间协同处理错误的能力。使用各种库进行协同开发的能力。对比较复杂的应用概念建模的......