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;
}
相关推荐
清酒难咽5 小时前
算法案例之递归
c++·经验分享·算法
z20348315206 小时前
C++对象布局
开发语言·c++
张张努力变强7 小时前
C++ Date日期类的设计与实现全解析
java·开发语言·c++·算法
沉默-_-7 小时前
力扣hot100滑动窗口(C++)
数据结构·c++·学习·算法·滑动窗口
斐夷所非8 小时前
C++ 继承、多态与类型转换 | 函数重载 / 隐藏 / 覆盖实现与基派生类指针转换
c++
gfdhy8 小时前
【C++实战】多态版商品库存管理系统:从设计到实现,吃透面向对象核心
开发语言·数据库·c++·microsoft·毕业设计·毕设
清酒难咽8 小时前
算法案例之分治法
c++·经验分享·算法
小屁猪qAq8 小时前
强符号和弱符号及应用场景
c++·弱符号·链接·编译
头发还没掉光光9 小时前
HTTP协议从基础到实战全解析
linux·服务器·网络·c++·网络协议·http
jojo_zjx10 小时前
GESP 24年12月2级 数位和
c++