C++QT day 5

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

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

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

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

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

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

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

#include <iostream>
#define PI 3.14//π
using namespace std;
//图形类
class Shape
{
protected:double cir;//周长double area;//面积
public://无参构造Shape(){cout<<"Shape::无参构造"<<endl;}//有参构造Shape(double cir,double area):cir(cir),area(area){cout<<"Shape::有参构造"<<endl;}//析构函数~Shape(){cout<<"Shape::析构函数"<<endl;}//拷贝构造函数Shape(const Shape &other):cir(other.cir),area(other.area){cout<<"Shape::拷贝构造函数"<<endl;}//拷贝赋值函数Shape & operator=(const Shape &other){if(this!=&other)//确定不是自己给自己赋值{this->cir=other.cir;this->area=other.area;}cout<<"Shape::拷贝赋值函数"<<endl;return *this;}
};
class Circle:public Shape
{
private:double rad;//半径
public://无参构造Circle(){cout<<"Circle::无参构造"<<endl;}//有参构造Circle(double rad):rad(rad){cout<<"Cricle::有参构造"<<endl;}//析构函数~Circle(){cout<<"Circle::析构函数"<<endl;}//拷贝构造函数Circle(const Circle &other):rad(other.rad){cout<<"Cricle::拷贝构造函数"<<endl;}//拷贝赋值函数Circle & operator=(const Circle &other){if(this!=&other)//确定不是自己给自己赋值{this->rad=other.rad;}cout<<"Circle::拷贝赋值函数"<<endl;return *this;}//计算周长函数void get_cir(){cir=2*PI*rad;cout<<"cir="<<cir<<endl;}//计算面积函数void get_area(){area=PI*rad*rad;cout<<"area="<<area<<endl;}
};
class Rect:public Shape
{
private:double length;//长度double width;//宽度
public://无参构造Rect(){cout<<"Rect::无参构造"<<endl;}//有参构造Rect(double length,double width):length(length),width(width){cout<<"Rect::有参构造"<<endl;}//析构函数~Rect(){cout<<"Rect::析构函数"<<endl;}//拷贝构造函数Rect(const Rect &other):length(other.length),width(other.width){cout<<"Rect::拷贝构造函数"<<endl;}//拷贝赋值函数Rect & operator=(const Rect &other){if(this!=&other)//确定不是自己给自己赋值{this->length=other.length;this->width=other.width;}cout<<"Rect::拷贝赋值函数"<<endl;return *this;}//计算周长函数void get_cir(){cir=(length+width)*2;cout<<"cir="<<cir<<endl;}//计算面积函数void get_area(){area=length*width;cout<<"area="<<area<<endl;}
};
int main()
{//实例一个圆Circle c(3);c.get_cir();c.get_area();//实例拷贝构造函数Circle c1=c;c1.get_cir();c1.get_area();//实例一个矩形Rect r(3,4);r.get_cir();r.get_area();//实例拷贝赋值函数Rect r1;r1=r;r1.get_cir();r1.get_area();return 0;
}

结果:

思维导图:

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

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

相关文章

linus调试器---gdb的操作介绍

目录 一.背景 二.gdb的常用的操作介绍 小技巧&#xff1a;gdb会记住上一次的命令&#xff0c;按回车即可打出上次的命令。 1.看代码 2.打断点 3.删断点 4.禁用与开启断点 5.查看断点信息 6.调试 7.调试 8.查看变量 9.运行至某行 10.打印变量值 11.从一断点直接运行…

决策树案例分析

决策树(Decision Tree)常用于研究类别归属和预测关系的模型&#xff0c;比如是否抽烟、是否喝酒、年龄、体重等4项个人特征可能会影响到‘是否患癌症’&#xff0c;上述4项个人特征称作‘特征’&#xff0c;也即自变量&#xff08;影响因素X&#xff09;&#xff0c;‘是否患癌…

【面试刷题】——Linux基础命令

Linux基础命令是在Linux操作系统中执行常见任务的一组命令。以下是一些常用的Linux基础命令&#xff0c;它们用于管理文件系统、执行系统任务、查看文件内容等。 文件和目录操作&#xff1a; ls: 列出目录中的文件和子目录。 pwd: 显示当前工作目录的路径。 cd: 更改当前工作…

超低功耗段码LCD液晶显示驱动IC-VKL144A/BQFN48超小体积液晶驱动

产品品牌&#xff1a;永嘉微电/VINKA 封装形式&#xff1a;TSSOP48/QFN48L 产品年份&#xff1a;新年份 沈先生 135 、547/44,703 原厂&#xff0c;工程服务&#xff0c;技术支持&#xff01; VKL144A/B 概述: VKL144A/B 是一个点阵式存储映射的LCD 驱动器&#xff0c;可…

AI助力安全监管:TSINGSEE视频智能分析系统烟火识别算法

水火无情人有情&#xff0c;火灾一旦发生没有被及时发现&#xff0c;就能在极短的时间内酿成无法挽回的大祸&#xff0c;所以烟火的监管与处理极为重要。为了让火患在刚发生时就能得到扼制&#xff0c;TSINGSEE青犀AI智能分析网关烟火识别算法具有重要意义。 TSINGSEE青犀AI智能…

国际版腾讯云/阿里云:全站加快有哪些功用?有哪些优势?适用于什么场景?

腾讯云全站加快有哪些功用&#xff1f;有哪些优势&#xff1f;适用于什么场景&#xff1f; 产品功用 全站加快 ECDN 经过在全球各区域部署加快节点&#xff0c;有用下降跨国拜访推迟&#xff0c;保证全球加快作用。 最优链路 各加快节点两两相连&#xff0c;实时勘探&#xff0…

MySQL BufferPool缓存与Redo日志是如何提升事务性能的

文章目录 引言一、BufferPool缓存的作用与优势1.1 BufferPool缓存的定义与作用1.2 BufferPool缓存的作用1.3 Change Buffer 作用 二、BufferPool缓存的优势2.1 减少磁盘IO操作的次数2.2 提高数据的读取速度2.3 减轻磁盘负载&#xff0c;提升整体系统性能 三、BufferPool缓存的工…

web浏览器公网远程访问jupyter notebook【内网穿透】

文章目录 前言1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5. 固定公网地址 前言 Jupyter Notebook&#xff0c;它是一个交互式的数据科学和计算环境&#xff0c;支持多种编程语言&#xff0c;如…

Day14 03-Shell函数定义及应用

文章目录 1.11 Shell函数定义及应用 1.11 Shell函数定义及应用 函数代表着一个或一组命令的集合&#xff0c;表示一个功能模块&#xff0c;常用于模块化编程&#xff0c;通常能提升重复利用和简化复杂程序。以下是关于函数的一些重要说明&#xff1a; 在shell中&#xff0c;函…

选择器进阶与表单表格

华子目录 选择器并集选择器后代选择器子代选择器伪类选择器伪元素选择器结构选择器属性选择器相邻选择器 表单&#xff08;form&#xff09;label标签 表格&#xff08;table标签&#xff09;合并单元格 选择器 下面是我们之前学习过的选择器 *{}&#xff1a;通配符选择器&am…

GaussDB(DWS)云原生数仓技术解析:湖仓一体,体验与大数据互联互通

文章目录 前言一、关于数据仓库需求场景分类二、数据仓库线下部署场景2.1、线下部署场景介绍及优劣势说明2.2、线下部署场景对应的客户需求 三、数据仓库公有云部署场景3.1、公有云部署场景介绍及优劣势说明3.2、公有云部署场景对应的客户需求 四、为何重视数据共享&#xff08…

Mybatis中动态SQL标签和内置参数介绍

Mybatis中动态SQL标签和内置参数 一、MyBatis动态SQL 1.1、sql标签 sql标签用于抽取公用的SQL代码&#xff0c;定义sql标签的时候需要通过【id】属性设置唯一标识。 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-…

【Springboot】Springboot如何优雅停机?K8S中Pod如何优雅停机?

什么是优雅停机&#xff1a; 就是对应用进程发送停止指令之后&#xff0c;执行的一系列保证应用正常关闭的操作。这些操作往往包括等待已有请求执行完成、关闭线程、关闭连接和释放资源等 就是对应用进程发送停止指令之后&#xff0c;能保证正在执行的业务操作不受影响&#x…

怎么压缩word文档?

怎么压缩word文档&#xff1f;在互联网技术飞速发展的当代&#xff0c;我们越来越多地依赖于电子文档来传递信息。然而&#xff0c;有时候文件的大小会成为我们传输和存储的一大限制。就拿我们每天都需要使用到的word文档来说吧&#xff0c;我们经常会使用到非常多的word文档&a…

linux之perf(4)stat统计

Linux之perf(4)stat统计 Author&#xff1a;Onceday Date&#xff1a;2023年9月16日 漫漫长路&#xff0c;才刚刚开始… 注&#xff1a;该文档内容采用了GPT4.0生成的回答&#xff0c;部分文本准确率可能存在问题。 参考文档: Tutorial - Perf Wiki (kernel.org)perf-stat…

程序设计课程设计

大二下到大三上的小学期&#xff0c;周期很长&#xff0c;物联负责前后端的搭建&#xff08;虽然说电商负责部分前端&#xff0c;但其实物联自己改更方便&#xff09;。第一次验收就是给看个原型用java swing做基本的跳转操作&#xff0c;第二次验收要展示完整前后端代码&#…

Android 原生内置应用配置

原生内置应用是指安装在操作系统中并由操作系统开发商提供的应用程序。这些应用程序通常在设备出厂时就预装在操作系统中,并且无法轻易移除或更换。原生内置应用的功能通常涵盖了设备的基本功能和服务,例如电话、短信、浏览器、相机、联系人等。 在Android操作系统中,一些常…

matlab检索相似图像

在Matlab中检索相似图像通常需要使用图像处理和计算机视觉技术。以下是一种常见的方法&#xff0c;可以帮助您在Matlab中进行相似图像检索&#xff1a; 准备图像数据库&#xff1a; 首先&#xff0c;您需要有一个包含待检索图像的图像数据库。这些图像应该经过预处理&#xff0…

rabbitmq 面试题

1.交换机类型 RabbitMQ是一个开源的消息队列系统&#xff0c;它支持多种交换机类型&#xff0c;用于在消息的生产者和消费者之间路由和分发消息 Direct Exchange&#xff08;直接交换机&#xff09;&#xff1a;Direct交换机是最简单的交换机类型之一。它将消息按照消息的Rout…

NLP领域可以投稿的期刊或会议(不断更新中……)

目录 引言&#xff1a; 会议 优点&#xff1a; 缺点&#xff1a; 期刊&#xff1a; 优点&#xff1a; 缺点&#xff1a; NLP领域可投稿的期刊或会议 会议 期刊 引言&#xff1a; 作为一名科研工作者&#xff0c;一旦有产出的时候&#xff0c;就会想要写成论文&#…