9.12 C++作业

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

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

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

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

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

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

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

复制代码
#include <iostream>

using namespace std;


class Shape
{
protected:
    double c;    //周长
    double s;    //面积

public:
    Shape(){cout<<"无参构造函数"<<endl;}
    Shape(double c1, double s1):c(c1), s(s1)
    {
        cout<<"有参构造函数"<<endl;
    }

    ~Shape(){cout<<"析构函数"<<endl;}

    //拷贝构造
    Shape(const Shape &other):c(other.c), s(other.s)
    {
        cout<<"拷贝构造"<<endl;
    }

};

//定义一个圆形类
class Circle:public Shape
{
private:
    double r;    //半径

public:
    Circle(){cout<<"无参构造函数"<<endl;}
    Circle(double c1, double s1, double r1):Shape(c1, s1), r(r1)
    {
        cout<<"有参构造函数"<<endl;
    }

    ~Circle(){cout<<"析构函数"<<endl;}

    //拷贝构造
    Circle(const Circle &other):Shape(other.c, other.s), r(other.r)
    {
        cout<<"拷贝构造"<<endl;
    }

    //获取周长
    void get_c(double r)
    {
         c = 2*r*3.14;
         cout<<"该圆的周长为"<<c<<endl;
    }

    //获取面积
    void get_s(double r)
    {
        s = 2*r*r*3.14;
        cout<<"该圆的面积为"<<s<<endl;
        cout<<endl;
    }
};


//定义一个矩形类
class Rect:public Shape
{
private:
    double h;    //高
    double w;    //宽

public:
    Rect(){cout<<"无参构造函数"<<endl;}
    Rect(double c1, double s1, double h1, double w1):Shape(c1, s1), h(h1), w(w1)
    {
        cout<<"有参构造函数"<<endl;
    }

    ~Rect(){cout<<"析构函数"<<endl;}

    //拷贝构造
    Rect(const Rect &other):Shape(other.c,other.s), h(other.h), w(other.w)
    {
        cout<<"拷贝构造"<<endl;
    }

    //获取周长
    void get_c(double h,double w)
    {
         c = 2*(h+w);
         cout<<"该矩形的周长为"<<c<<endl;
    }

    //获取面积
    void get_s(double h, double w)
    {
        s = h*w;
        cout<<"该矩形的面积为"<<s<<endl;
        cout<<endl;
    }
};

int main()
{
    Circle a;    //圆类对象
    a.get_c(5);  //圆周长
    a.get_s(5);  //圆面积

    Rect b;       //矩形类对象
    b.get_c(4,5); //周长
    b.get_s(4,5); //面积
    return 0;
}
相关推荐
Lhan.zzZ35 分钟前
笔记_2026.4.28_004
c++·ide·笔记·qt
wuminyu2 小时前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
木喃的井盖3 小时前
无锁队列细节
c++·工程
王老师青少年编程3 小时前
csp信奥赛C++高频考点专项训练之字符串 --【字符串基础】:输出亲朋字符串
c++·字符串·csp·高频考点·信奥赛·专项训练·输出亲朋字符串
WBluuue4 小时前
数据结构与算法:莫队(一):普通莫队与带修莫队
c++·算法
KuaCpp4 小时前
C++面向对象(速过复习版)
开发语言·c++
智者知已应修善业7 小时前
【51单片机不用数组动态数码管显示字符和LED流水灯】2023-10-3
c++·经验分享·笔记·算法·51单片机
AI进化营-智能译站8 小时前
ROS2 C++开发系列16-智能指针管理传感器句柄|告别ROS2节点内存泄漏与野指针
java·c++·算法·ai
报错小能手8 小时前
好好讲讲移动构造 移动赋值
c++
syker8 小时前
AIFerric深度学习框架:自研全栈AI基础设施的技术全景
开发语言·c++