C++--day5

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

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

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

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

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

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

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

#include <iostream>using namespace std;
class Shape
{
protected:double round;double area;
public:Shape(){cout<<"无参构造"<<endl;}Shape(double r,double a):round(r),area(a){cout<<"有参构造"<<endl;}~Shape(){cout<<"析构函数"<<endl;}Shape(const Shape &other):round(other.round),area(other.area){cout<<"拷贝构造"<<endl;}Shape & operator=(const Shape &other){this->area=other.area;this->round=other.round;cout<<"拷贝赋值"<<endl;return *this;}Shape & operator=(Shape &&other){this->area=other.area;this->round=other.round;cout<<"移动赋值"<<endl;return *this;}};
class Circle:public Shape
{
private:double bj;
public:Circle() {}Circle(double r):bj(r){cout<<"有参构造"<<endl;}~Circle(){cout<<"析构函数"<<endl;}Circle(const Circle &other):Shape(other.round,other.area),bj(other.bj){cout<<"拷贝构造"<<endl;}Circle & operator=(const Circle &other){this->area=other.area;this->round=other.round;this->bj=other.bj;cout<<"拷贝赋值"<<endl;return *this;}Circle & operator=(Circle &&other){this->area=other.area;this->round=other.round;this->bj=other.bj;cout<<"移动赋值"<<endl;return *this;}void zc(){this->round=this->bj*2*(3.14);cout<<"周长="<<round<<endl;}void mj(){this->area=this->bj*this->bj*(3.14);cout<<"面积="<<area<<endl;}void show(){cout<<"周长="<<round<<endl;cout<<"面积="<<area<<endl;}
};
class Rect:public Shape
{
private:double hight;double wight;
public:Rect() {}Rect(double h,double w):hight(h),wight(w){cout<<"有参构造"<<endl;}~Rect(){cout<<"析构函数"<<endl;}Rect(const Rect &other):Shape(other.round,other.area),hight(other.hight),wight(other.wight){cout<<"拷贝构造"<<endl;}Rect & operator=(const Rect &other){this->area=other.area;this->round=other.round;this->hight=other.hight;this->wight=other.wight;cout<<"拷贝赋值"<<endl;return *this;}Rect & operator=(Rect &&other){this->area=other.area;this->round=other.round;this->hight=other.hight;this->wight=other.wight;cout<<"移动赋值"<<endl;return *this;}void zc(){this->round=(this->hight+this->wight)*2;cout<<"周长="<<round<<endl;}void mj(){this->area=this->hight*this->wight;cout<<"面积="<<area<<endl;}void show(){cout<<"周长="<<round<<endl;cout<<"面积="<<area<<endl;}
};
int main()
{Circle c1(10);c1.zc();c1.mj();Circle c2(c1);c2.show();Circle c3;c3=c1;c3.show();Circle c4;c4=move(c3);c3.show();c4.show();cout<<"******************************************"<<endl;Rect r1(10,5);r1.mj();r1.zc();Rect r2=r1;r2.show();Rect r3;r3=r1;r3.show();return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CPU-主存储器-副存储器-RAM-ROM-内存-运存-外存-硬盘-闪存-GPU-显存——关于这一系列概念的理解

文章目录 概念梳理CPU主存储器/内存/RAM/运存ROM副存储器/外存硬盘&#xff08;电脑&#xff09;、闪存&#xff08;手机&#xff09;GPU显存 可参考的手机内部结构示意图 做计算机组成原理上的题的时候&#xff0c;发觉自己对RAM和ROM的概念理解有所缺失&#xff0c;在看完一些…

Postman —— 配置环境变量

PostMan是一套比较方便的接口测试工具&#xff0c;但我们在使用过程中&#xff0c;可能会出现创建了API请求&#xff0c;但API的URL会随着服务器IP地址的变化而改变。 这样的情况下&#xff0c;如果每一个API都重新修改URL的话那将是非常的麻烦&#xff0c;所以PostMan中也提供…

【OpenCL基础 · 二 】OpenCL架构

文章目录 前言一、OpenCL平台模型二、OpenCL执行模型1.上下文2.命令队列3.内核的执行——NDRange 三、OpenCL存储器模型1.存储器区域2.存储器对象3.主机与设备的数据交互 总结 前言 通过【OpenCL基础 一】因源&#xff0c;我们了解了OpenCL的起源和应用场景。在异构并行平台上…

【校招VIP】产品思维考察之用户体验

考点介绍&#xff1a; 在设计产品的功能点时&#xff0c;我们需要设想我们的用户到底是谁&#xff1f;他的需求是什么&#xff1f; 为此我们需要做用户分析&#xff0c;从而得出我们的用户画像&#xff0c;提供解决方案。用户调研是用户分析的一种方法&#xff0c;用户画像是结…

Java——比较器

引入的背景 我们知道基本数据类型的数据&#xff08;除boolean类型外&#xff09;需要比较大小的话&#xff0c;直接使用比较运算符即可&#xff0c;但是引用数据类型是不能直接使用比较运算符来比较大小的。那么&#xff0c;如何解决这个问题呢&#xff1f; 在Java中经常会涉…

SpringBoot基础入门

文章目录 前言一、SpringBoot简介1.Spring的能力2.Spring的生态3.为什么使用SpringBootSpringBoot的优点SpringBoot缺点 二、HelloWord项目1.创建maven工程2.创建主程序3.编写Controller层4.运行5.设置配置6.打包部署 三、依赖管理特性四、自动配置特性总结 前言 第一个HelloW…

质量管理计划创建的负责人以及4大步骤

在项目管理中&#xff0c;除了通常考虑的三重约束&#xff08;时间、范围和成本&#xff09;之外&#xff0c;还应该有第四个重要的约束因素——质量。即便一个项目在预定的时间和预算内完成&#xff0c;如果其质量没有达到相关利益方&#xff08;比如客户或投资者&#xff09;…

喜报 | 祝贺璞华科技通过CMMI Lv5 等级复审!

喜报频传 璞华科技顺利通过复审认证 再次荣获CMMI5级证书 让我们共同庆祝这一荣耀的时刻 展望更加美好的未来 2023年8月&#xff0c;经Safety Equipment Institute评估&#xff0c;璞华科技顺利通过全球软件领域CMMI五级&#xff08;简称CMMI5&#xff09;复审认证&#xf…

Matlab中fdatool结合STM32F4设计滤波器

数字滤波器的原理 1.从功能上分&#xff1b;低通、带通、高通、带阻。滤波器口诀&#xff1a;低通滤高频&#xff1b;高通滤低频&#xff1b;带通滤两边&#xff1b;带阻阻中间&#xff1b; 2.从实现方法上分:FIR、IIR 3.从设计方法上来分&#xff1a;Chebyshev(切比雪夫&…

react处理跨域

如果是新建的react项目&#xff0c;没有将webpack的配置文件释放出来的话&#xff0c;请先运行 npm run eject 根目录会出现config文件夹&#xff0c;找到path.js就可以看到proxy的配置&#xff0c;默认读取的是src/setupProxy.js 那么我们可以在src目录下新建setupProxy.js…

python机器人编程——用python实现一个写字机器人

目录 一、前言二、整体框架2.1 系统构成2.2 硬件介绍2.2.1主要组成部分2.2.2机械结构2.2.3驱动及控制主板PS电机驱动原理简介: 2.2.4其余部分 2.3 机器人python程序框架2.3.1通信服务模块2.3.2消息处理模块2.3.3轨迹解析模块2.3.4机械臂逆解模块2.3.5写字板模块 三、机械臂的建…

【性能测试】Jmeter —— jmeter计数器

jmeter计数器 如果需要引用的数据量较大&#xff0c;且要求不能重复或者需要递增&#xff0c;那么可以使用计数器来实现 如&#xff1a;新增功能&#xff0c;要求名称不能重复 1&#xff0c;新增计数器 计数器&#xff1a;允许用户创建一个在线程组之内都可以被引用的计数器…