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.利用虚函数实现多态性来求正方体、球体和圆柱体的表面积和体积。相关推荐

  1. C++虚函数实现多态性来求正方体、球体和圆柱体的表面积和体积

    题目: 2.利用虚函数实现多态性来求正方体.球体和圆柱体的表面积和体积.具体要求如下:从正方体.球体和圆柱体的各种运算中抽象出一个公共基类 container为抽象类,在其中定义求表面积和体积的纯虚函 ...

  2. C++编程练习:多态实验——利用抽象类和纯虚函数,编程计算正方体、球体和圆柱体的表面积和体积。

    例.要求利用抽象类和纯虚函数,编程设计一个程序计算正方体.球体和圆柱体的表面积和体积,具体要求如下: 1.设计一个抽象类为公共基类 : 2.设计成员函数source_area( ),求表面积: 3.设 ...

  3. 从键盘输入圆柱体的半径和高,求圆柱体的表面积和体积

    从键盘输入圆柱体的半径和高,求圆柱体的表面积和体积 解析: #include <stdio.h> #include <math.h>#define PI 3.1415926in ...

  4. 求圆柱体的表面积和体积

    /* * 程序的版权和版本声明部分: * Copyright (c) 2014, XX大学,信院 * All rights reserved. * 文件名称:zx.cpp * 作 者:zx909090 ...

  5. C++虚函数与多态性

    C++虚函数与多态性 开发工具与关键技术:C++.VisualStudio 作者:何任贤 撰写时间:2019年06月01日 多态性(Polymorphism)是指一个名字,多种语义:或界面相同,多种实 ...

  6. c++复习日记2 虚函数和多态性

    8月17日学习c++虚函数与多态性.模板和流. "虚函数"."多态性"和函数的"重载"是密切相关的.普通函数重载,在一个类中可以通过不同的参 ...

  7. 头歌C++ 第8章 虚函数与多态性

    第8章 虚函数与多态性 一.实训目的 1.掌握运算符重载的方法: 2.学习使用虚函数实现动态多态性: 二.实训内容 1.公有继承 -- 学生信息类 掌握运算符重载的方法: 2.摩托车类 学习使用虚函数 ...

  8. C语言运用函数求长方体的表面积和体积

    利用C语言编写程序 编程要求 编程准备 编程内容 编程要求 利用C语言函数功能编写一个程序,能输入任意值,即长方体的长宽高从而输出该长方体的表面积和体积. 编程准备 1.编程软件为Visual C++ ...

  9. 编写计算正方体、圆柱体、球体的表面积和体积的类。要求: (1)这三个类有一个公共的基类; (2)这三个类计算正方体、圆柱体、球体的表面积和体积的成员函数名字相同; (3)按照运行时的多态性方法设计一个

    本文为博主原创文章,未经博主允许不得转载. 版权为陈博超所有,第一次于2020年11月24日发表于BLOG上 本BLOG上原创文章未经本人许可,不得用于商业用途.转载请经允许后注明出处,否则保留追究法 ...

最新文章

  1. 【 C 】动态内存分配实用案例(一)之读取、排序和打印一列整形值
  2. 【C 语言】字符串拷贝 ( 函数形参使用推荐方法 | 凡是涉及 修改指针指向 的操作一律创建新的 指针变量 执行 | 引入 辅助 局部 指针变量 )
  3. 无插件web直播解决方案,ffmpeg+nginx-http-flv-module+flv.js
  4. 微信运动:抓住用户的小九九,一个都别跑
  5. python引用传递的区别_python的值类型和引用类型及值传递和引用传递的区别
  6. Android核心程序之SystemUI - (一)开篇
  7. 努力学计算机四年,终于进腾讯了!
  8. Nature Biotechnology | 单细胞转录组不同建库及数据分析方法的测评结果
  9. 浙大python读者验证码_Python实现简单生成验证码功能【基于random模块】
  10. Maven—Eclipse设置Maven项目JDK版本
  11. php数组和字符串转换
  12. CSDN搜索可以搜博客代码了
  13. 基于TCP协议的电子词典
  14. android interpolator 插值器
  15. 对微信公众号文章爬取进行分析
  16. kafka opentracing
  17. 考研数学一二三区别 什么专业考研不考数学
  18. 学透CSS-当CSS遇到古诗和月亮,月亮动起来!!!
  19. LabVIEW写入可快速加载的TDMS文件
  20. 智慧泊车建设方案 PPT

热门文章

  1. 【英文SEO】Google网站管理员工具是什么?
  2. 深度学习之CUDA与cuDNN
  3. java中的码点_Java中码点和码点单元 码点与字符串的互化
  4. 接口显示返回值正常,但是拿到的值却是undefined?
  5. andorid开发关键技术
  6. C#用于生成meileg网站的图片下载地址
  7. Bloomberg彭博终端函数和EXCEL插件
  8. eclipse官方网址、各个版本的下载
  9. i5 11300H和i7 10750h 对比哪个好
  10. 莱布尼兹三角形(OJ0082)