- #include
-
- using namespace std;
-
- class Shape//实现一个图形类
- {
- protected:
- double zc;//周长
- double mj;//面积
- public:
- Shape()//无参构造
- {
- cout<<"图形无参构造成功"<
- }
-
- Shape(double a,double b):zc(a),mj(b)//有参构造
- {
- cout<<"图形有参构造成功"<
- }
-
- ~Shape(){}//析构函数
-
- Shape(const Shape &other):zc(other.zc),mj(other.mj)//拷贝构造
- {
- cout<<"图形拷贝构造成功"<
- }
-
- Shape & operator=(const Shape &other)//拷贝赋值
- {
- if(this != &other) //确定不是自己给自己赋值
- {
- this->zc = other.zc;
- this->mj = other.mj;
- }
- cout<<"拷贝赋值函数成功"<
- return *this; //返回自身引用
- }
- virtual double get_zh()//获取周长函数
- {
- return zc;
- }
- virtual double get_mj()//获取面积函数
- {
- return mj;
- }
- };
-
- class Circle:public Shape//定义一个圆形类,继承图形类
- {
- private:
- double bj;//半径
- public:
- Circle()//无参构造
- {
- cout<<"圆形无参构造成功"<
- }
-
- Circle(double c):bj(c)//有参构造
- {
- cout<<"圆形有参构造成功"<
- }
-
- ~Circle(){}//析构函数
-
- Circle(const Circle &other):Shape(other),bj(other.bj)//拷贝构造
- {
- cout<<"圆形拷贝构造成功"<
- }
-
- Circle & operator=(const Circle &other)//拷贝赋值
- {
- if(this != &other) //确定不是自己给自己赋值
- {
- Shape::operator=(other);
- this->bj = other.bj;
- }
- cout<<"拷贝赋值函数成功"<
- return *this; //返回自身引用
- }
-
- double get_zh() override//获取周长函数
- {
- zc=3.14*2*bj;
- return zc;
- }
- double get_mj() override//获取面积函数
- {
- mj=3.14*bj*bj;
- return mj;
- }
- void show()
- {
- cout<<"半径为:"<
- cout<<"周长为:"<
" 面积为:"< - }
- };
-
- class Rect:public Shape//定义一个矩形类,继承图形类
- {
- private:
- double cd;//长度
- double kd;//宽度
- public:
- Rect()//无参构造
- {
- cout<<"矩形无参构造成功"<
- }
- Rect(double c,double d):cd(c),kd(d)//有参构造
- {
- cout<<"矩形有参构造成功"<
- }
- ~Rect(){}//析构函数
-
- Rect(const Rect &other):Shape(other),cd(other.cd),kd(other.kd)//拷贝构造
- {
- cout<<"矩形拷贝构造成功"<
- }
- Rect & operator=(const Rect &other)//拷贝赋值
- {
- if(this != &other) //确定不是自己给自己赋值
- {
- Shape::operator=(other);
- this->cd = other.cd;
- this->kd = other.kd;
- }
-
- cout<<"拷贝赋值函数成功"<
- return *this; //返回自身引用
- }
- double get_zh()//获取周长函数
- {
- zc=(cd+kd)*2;
- return zc;
- }
- double get_mj()//获取面积函数
- {
- mj=cd*kd;
- return mj;
- }
- void show()
- {
-
-
相关阅读:
未雨绸缪,前端小知识
深入浅出(五)JsonCpp库
酒店管理系统
XMLHttpRequest Level2的新功能&&使用jquery简化文件上传
Java源码分析:Guava之不可变集合ImmutableMap的源码分析
微服务的快速开始(nacos)最全快速配置图解
【JAVA UI】abilitySlice或ability以Action方式跳转
CV2对图像做渐变模糊
Docker基础-2.常用命令与Docker镜像
man 获得帮助信息
-
原文地址:https://blog.csdn.net/yjh666jhy/article/details/132838522