14.利用虚函数实现多态性来求正方体、球体和圆柱体的表面积和体积。
14.利用虚函数实现多态性来求正方体、球体和圆柱体的表面积和体积。
具体要求如下,
从正方体、球体和圆柱体的各种运算中抽象出一个公共基类container为抽象类,
在其中定义求表面积和体积的纯虚函数(该抽象类本身是没有表面积和体积可言的)。
在抽象类中定义一个公共的数据成员radius,此数据可作为球的半径、正方体的边长、圆柱体底面圆半径。
由此抽象类派生出要描述的3个类,即cube、snhere和cvlinder,在这3个类中都具有求表面积和体积的重定义版本。
#include<iostream> using namespace std; #define pi 3.14 class container { protected:double radius; public:container(double a) :radius(a) {}virtual double getbiaomianji() = 0;virtual double gettiji() = 0;virtual void show1() = 0;//display->表面积virtual void show2() = 0;//display->体积 }; class cube:public container { public:cube(double c) :container(c) {}double getbiaomianji(){return this->radius * this->radius * pi*4;}double gettiji(){return this->radius * this->radius * pi * 4 / 3;}void show1(){cout << "球的表面积为:\t" << this->getbiaomianji() << endl;}void show2(){cout << "球的体积为:\t" << this->gettiji() << endl;} }; class snhere:public container { public:snhere(double s) :container(s) {}double getbiaomianji(){return this->radius * this->radius *6;}double gettiji(){return this->radius * this->radius *this->radius;}void show1(){cout << "正方体的表面积为:\t" << this->getbiaomianji() << endl;}void show2(){cout << "正方体的体积为:\t" << this->gettiji() << endl;} }; class cvlinder:public container { protected:double height; public:cvlinder(double a, double b) :container(a), height(b) {}double getbiaomianji(){return this->radius * this->radius *pi*2 + this->radius* 2 * pi * height;}double gettiji(){return this->radius * this->radius * pi*height;}void show1(){cout << "圆柱的表面积为:\t" << this->getbiaomianji() << endl;}void show2(){cout << "圆柱的体积为:\t" << this->gettiji() << endl;} }; int main() {double a, b;cin >> a;cube cu(a);container& co = cu;co.show1(); co.show2();cout << "----" << endl;cin >> a;snhere sn(a);container* con = &sn;con->show1(); con->show2();cout << "----" << endl;cin >> a >> b;cvlinder cv(a, b);cv.show1(); cv.show2();system("pause"); }
14.利用虚函数实现多态性来求正方体、球体和圆柱体的表面积和体积。相关推荐
- C++虚函数实现多态性来求正方体、球体和圆柱体的表面积和体积
题目: 2.利用虚函数实现多态性来求正方体.球体和圆柱体的表面积和体积.具体要求如下:从正方体.球体和圆柱体的各种运算中抽象出一个公共基类 container为抽象类,在其中定义求表面积和体积的纯虚函 ...
- C++编程练习:多态实验——利用抽象类和纯虚函数,编程计算正方体、球体和圆柱体的表面积和体积。
例.要求利用抽象类和纯虚函数,编程设计一个程序计算正方体.球体和圆柱体的表面积和体积,具体要求如下: 1.设计一个抽象类为公共基类 : 2.设计成员函数source_area( ),求表面积: 3.设 ...
- 从键盘输入圆柱体的半径和高,求圆柱体的表面积和体积
从键盘输入圆柱体的半径和高,求圆柱体的表面积和体积 解析: #include <stdio.h> #include <math.h>#define PI 3.1415926in ...
- 求圆柱体的表面积和体积
/* * 程序的版权和版本声明部分: * Copyright (c) 2014, XX大学,信院 * All rights reserved. * 文件名称:zx.cpp * 作 者:zx909090 ...
- C++虚函数与多态性
C++虚函数与多态性 开发工具与关键技术:C++.VisualStudio 作者:何任贤 撰写时间:2019年06月01日 多态性(Polymorphism)是指一个名字,多种语义:或界面相同,多种实 ...
- c++复习日记2 虚函数和多态性
8月17日学习c++虚函数与多态性.模板和流. "虚函数"."多态性"和函数的"重载"是密切相关的.普通函数重载,在一个类中可以通过不同的参 ...
- 头歌C++ 第8章 虚函数与多态性
第8章 虚函数与多态性 一.实训目的 1.掌握运算符重载的方法: 2.学习使用虚函数实现动态多态性: 二.实训内容 1.公有继承 -- 学生信息类 掌握运算符重载的方法: 2.摩托车类 学习使用虚函数 ...
- C语言运用函数求长方体的表面积和体积
利用C语言编写程序 编程要求 编程准备 编程内容 编程要求 利用C语言函数功能编写一个程序,能输入任意值,即长方体的长宽高从而输出该长方体的表面积和体积. 编程准备 1.编程软件为Visual C++ ...
- 编写计算正方体、圆柱体、球体的表面积和体积的类。要求: (1)这三个类有一个公共的基类; (2)这三个类计算正方体、圆柱体、球体的表面积和体积的成员函数名字相同; (3)按照运行时的多态性方法设计一个
本文为博主原创文章,未经博主允许不得转载. 版权为陈博超所有,第一次于2020年11月24日发表于BLOG上 本BLOG上原创文章未经本人许可,不得用于商业用途.转载请经允许后注明出处,否则保留追究法 ...
最新文章
- 【 C 】动态内存分配实用案例(一)之读取、排序和打印一列整形值
- 【C 语言】字符串拷贝 ( 函数形参使用推荐方法 | 凡是涉及 修改指针指向 的操作一律创建新的 指针变量 执行 | 引入 辅助 局部 指针变量 )
- 无插件web直播解决方案,ffmpeg+nginx-http-flv-module+flv.js
- 微信运动:抓住用户的小九九,一个都别跑
- python引用传递的区别_python的值类型和引用类型及值传递和引用传递的区别
- Android核心程序之SystemUI - (一)开篇
- 努力学计算机四年,终于进腾讯了!
- Nature Biotechnology | 单细胞转录组不同建库及数据分析方法的测评结果
- 浙大python读者验证码_Python实现简单生成验证码功能【基于random模块】
- Maven—Eclipse设置Maven项目JDK版本
- php数组和字符串转换
- CSDN搜索可以搜博客代码了
- 基于TCP协议的电子词典
- android interpolator 插值器
- 对微信公众号文章爬取进行分析
- kafka opentracing
- 考研数学一二三区别 什么专业考研不考数学
- 学透CSS-当CSS遇到古诗和月亮,月亮动起来!!!
- LabVIEW写入可快速加载的TDMS文件
- 智慧泊车建设方案 PPT