【C++】——多态性与模板(其二)

🎃个人专栏:

🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客

🐳Java基础:Java基础_IT闫的博客-CSDN博客

🐋c语言:c语言_IT闫的博客-CSDN博客

🐟MySQL:数据结构_IT闫的博客-CSDN博客

🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客

💎C++:C++_IT闫的博客-CSDN博客

🥽C51单片机:C51单片机(STC89C516)_IT闫的博客-CSDN博客

💻基于HTML5的网页设计及应用:基于HTML5的网页设计及应用_IT闫的博客-CSDN博客​​​​​​

🥏python:python_IT闫的博客-CSDN博客

🐠离散数学:离散数学_IT闫的博客-CSDN博客

欢迎收看,希望对大家有用!

🎯问题一

给出下面的抽象基类container;要求建立2个继承container的派生类Sphere与Cylinder,每一个派生类都包含虚函数surface_area()和 volume(),分别用来计算球体和圆柱体的表面积及体积。写出主程序,应用C++的多态性,分别计算半径为5.0的球体以及半径为5.0和高为6.0的圆柱体的表面积和体积。🎯问题一

🎯问题二

已知一个有若干元素的数组arr,使用函数模板求该数组的的最大值,主函数定义数组,使用模板函数求最大值并输出。

🎯问题三

编写一个类模板对数组元素进行遍历输出、数组求和等,主函数创建数组类对象,调用函数遍历输出及求和。

🎯答案一 

#include <iostream>using namespace std;class Container {    //声明抽象类containerprotected:double  radius;public:Container(double _radius) { //抽象类container的构造函数radius=_radius;}virtual double surface_area()=0; //纯虚函数surface_areavirtual double volume()=0;       //纯虚函数volume};/****************************************************///派生类sphere  pi=3.14159   s=4*pi*r*r   v=4/3*pi*r*r*rclass Sphere:public Container {public:Sphere(double _radius);double surface_area();double volume();};Sphere::Sphere(double _radius):Container(_radius) {}double Sphere::surface_area() {//s=4*pi*r*rreturn 4*3.14159*radius*radius;}double Sphere::volume() {//v=4/3*pi*r*r*rreturn 4.0/3*3.14159*radius*radius*radius;}/****************************************************///派生类Cylinderclass Cylinder:public Container {public:Cylinder(double _radius,double _height);double surface_area();double volume();private:double height;};Cylinder::Cylinder(double _radius,double _height):Container(_radius) {height=_height;}double Cylinder::surface_area() {return 2*3.14159*radius*height+2*3.14159*radius*radius;}double Cylinder::volume() {return 3.14159*radius*radius*height;;}int main() {Sphere sphere(2);cout<<"球体表面积:"<<sphere.surface_area()<<endl;cout<<"球体体积:"<<sphere.volume()<<endl;Cylinder Cylinder(2,3);cout<<"圆柱体表面积:"<<Cylinder.surface_area()<<endl;cout<<"圆柱体体积:"<<Cylinder.volume()<<endl;}

🎯答案二

#include <iostream>using namespace std;/****************************************************///函数模板max_arr template <class T>T max_arr(T arr[],int n) {T max=arr[0];for(int i=1; i<n; i++)if(max<arr[i])max=arr[i];return max;}/****************************************************/int main() {int a[5],k;for(k=0;k<5;k++)cin>>a[k];cout<<"max="<<max_arr<int>(a,5)<<endl;}

🎯答案三

#include <iostream>using namespace std;template<class T>  //类模板class Array {private:int _size;T* _ptr;public:Array(T arr[], int s);void show();T sum();};//构造函数template<class T>Array<T>::Array(T arr[], int s) {_ptr = new T[s];_size = s;for (int i=0; i<_size; i++) {_ptr[i]=arr[i];}}//遍历输出函数template<class T>void Array<T>::show() {for (int i=0; i<_size; i++)cout<<*(_ptr + i)<<" ";cout<<endl;}/****************************************************///求和函数template<class T>T Array<T>::sum() {T s=0;for (int i=0; i<_size; i++)s=s+*(_ptr + i);return s;}/****************************************************/int main() {int iArr[6] = { 2, 1, 3, 5, 4, 6 };Array<int> a1(iArr, 6);a1.show();cout<<"sum="<<a1.sum()<<endl;return 0;}

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

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

相关文章

import.meta.glob() 如何导入多个目录下的资源

import.meta.glob() 如何导入多个目录下的资源 刚开始用 vite&#xff0c;在做动态路由的时候遇到了这个问题&#xff0c;看到其它教程上都是只引用了一个目录层级的内容&#xff0c;比如这样&#xff1a; let RouterModules import.meta.glob("/src/view/*/*.vue"…

vue3中使用全局自定义指令和组件自定义指令

这篇文章会教大家如何实现全局自定义指令和组件自定义指令 &#x1f4d3;全局自定义指令和组件自定义指令的区别&#xff0c;除了写法不同和作用不同&#xff0c;其他的包括生命周期的使用方法都是一致的&#xff0c;全局自定义指令在main.ts中注册后整个项目都可以使用&#x…

简述几个我们对Redis 7开源社区所做的贡献

Redis 7 已经于2022年4月28号正式发布&#xff0c;其中包括了将近50个新的命令&#xff0c;增加了许多新的特性&#xff0c;并且在整个Redis 6到Redis 7的开发过程中&#xff0c;我也对Redis 的开源社区贡献了一些微薄的力量。在这篇文章中&#xff0c;我来给大家介绍几个自己亲…

STM32定时器输入捕获测量高电平时间

STM32定时器输入捕获测量高电平时间 输入捕获测量高电平时间CuebMX配置代码部分 本篇内容要求读者对STM32通用定时器有一点理解&#xff0c;如有不解&#xff0c;请看 夜深人静学32系列15——通用定时器 输入捕获 输入捕获是STM32通用定时器的一种功能&#xff0c;可以捕获特定…

axios 请求合集

post 请求 请求负载请求参数&#xff08;Request Payload&#xff09; import axios from axios import qs from query-stringexport function getRoles(data){return axios.post(目标地址,data,{headers:{Content-Type: application/json,},}) }表单请求参数&#xff08;Form…

OGG-01224 Address already in use 问题

ERROR OGG-01224 Oracle GoldenGate Manager for Oracle, mgr.prm: Address already in use. ERROR OGG-01668 Oracle GoldenGate Manager for Oracle, mgr.prm: PROCESS ABENDING. 查看端口被占用情况&#xff1a; [rootcenterone ogg]# lsof -i:7809原因mgr 7809 端口被占…

Spring-IOC-@Value和@PropertySource用法

1、Book.java PropertySource(value"classpath:配置文件地址") 替代 <context:property-placeholder location"配置文件地址"/> Value("${book.bid}") Value("${book.bname}") Value("${book.price}") <bean id&…

MS90C386:+3.3V 175MHz 的 24bit 平板显示器(FPD)LVDS 信号接收器

产品简述 MS90C386 芯片能够将 4 通道的低压差分信号&#xff08; LVDS &#xff09;转换成 28bit 的 TTL 数据。时钟通道与数据通道并行输入。在时钟频率 为 175MHz 时&#xff0c; 24bit 的 RGB 数据、 3bit 的 LCD 时序数据和 1bit 的控制数据以 1225Mb…

Es 拼音搜索无法高亮

目录 背景&#xff1a; Es 版本&#xff1a; 第一步 第二步 &#xff08;错误步骤 - 只是记录过程&#xff09; 第三步 第四步 第五步 第六步 第七步 背景&#xff1a; app 原有的搜索功能无法进行拼音搜索&#xff0c;产品希望可以支持&#xff0c;例如内容中含有&a…

c++|内联函数

一、概念 以inline修饰的函数叫做内联函数&#xff0c;编译时c编译器会在调用函数的地方展开&#xff0c;而不会建立栈帧&#xff0c;提升了程序运行的效率 例子&#xff1a; #include <iostream> using namespace std;int Add(int left, int right) {return left - ri…

配置环境-insightface-torch

1. 创建环境&#xff1a;conda create -n insightface2 python3.8 2.安装pytorch: 我的cuda 是 11.3 然后进入 pytorch 官网查找对应cuda 版本 pytorch 安装 建议使用 pip # CUDA 11.3 conda install pytorch1.12.1 torchvision0.13.1 torchaudio0.12.1 cudatoolkit11.3 -…

Spring5从入门到精通(一)

1.IOC容器 2.AOP面向切面编程 3. 声明事务&#xff1b; 4. 注解的方式启动对我们后期学习SpringBoot有非常大帮助&#xff1b; 5. 整合SpringMVC 和Mybatis&#xff1b; 6. Spring5新特性&#xff1b; JDK最低版本要求1.8 Spring概念 Spring是一个JavaEE开源的轻量级别…

勒索病毒最新变种.mkp勒索病毒来袭,如何恢复受感染的数据?

引言&#xff1a; 随着网络技术的不断发展&#xff0c;勒索病毒已经成为数字时代的威胁之一&#xff0c;而MKP勒索病毒正是其中之一。本文将深入介绍MKP勒索病毒的特点&#xff0c;讨论恢复被加密数据的方法&#xff0c;并提供预防措施&#xff0c;以帮助用户和组织更好地保护…

openGauss学习笔记-127 openGauss 数据库管理-设置账本数据库-修复账本数据库

文章目录 openGauss学习笔记-127 openGauss 数据库管理-设置账本数据库-修复账本数据库127.1 前提条件127.2 背景信息127.3 操作步骤 openGauss学习笔记-127 openGauss 数据库管理-设置账本数据库-修复账本数据库 127.1 前提条件 系统中需要有审计管理员或者具有审计管理员权…

Leetcode_48:旋转图像

题目描述&#xff1a; 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],…

连接数据库

在xml里 "jdbc:mysql://localhost:3306/db_xiaoqi?characterEncodingutf8&amp;useSSLfalse&amp;serverTimezoneUTC&amp;rewriteBatchedStatementstrue".properties配置文件 drivercom.mysql.cj.jdbc.Driver urljdbc:mysql://localhost:3306/mybatis_s…

Android okhttp3.0配置https信任所有证书

参考: Android okhttp3.0配置https的自签证书和信任所有证书 private OkHttpClient getHttpsClient() {OkHttpClient.Builder okhttpClient new OkHttpClient().newBuilder();//信任所有服务器地址okhttpClient.hostnameVerifier(new HostnameVerifier() {Overridepublic boo…

夯实数字基础设施,促进可持续发展

梁华可持续论坛开幕致辞 &#xff08;2023年11月21日&#xff0c;东莞&#xff09; 各位嘉宾&#xff0c;女士们&#xff0c;先生们&#xff0c;大家好&#xff01;欢迎出席今年的可持续发展论坛&#xff0c;共同探讨数字经济时代&#xff0c;数字基础设施建设如何更好使能可…

【Java】NIO概述

本文主要介绍Java的IO。 这里主要按类的操作方式和操作对象对JavaIO进行分类&#xff0c;方便理解&#xff0c;后续使用时可以方便地查询。 一、操作方式分类 首先介绍几组概念&#xff1a; 字节流和字符流&#xff1a; 字节流&#xff1a;以字节为单位&#xff0c;每次次读…

(二)pytest自动化测试框架之添加测试用例步骤(@allure.step())

前言 在编写自动化测试用例的时候经常会遇到需要编写流程性测试用例的场景&#xff0c;一般流程性的测试用例的测试步骤比较多&#xff0c;我们在测试用例中添加详细的步骤会提高测试用例的可阅读性。 allure提供的装饰器allure.step()是allure测试报告框架非常有用的功能&am…