问题描述

定义一个point类,用来记录点的坐标。由point类派生出cricle类,继承圆心坐标,同时增加新的数据成员,半径r。最后定义组合类cone,其中有两个成员对象,一个是顶点point,一个是底面圆corcle,同时增加新的数据成员,体积V。输出圆锥体积V。

代码展示

#include<iostream>
#include<iomanip>
#define PAI 3.14
using namespace std;class point       //定义类 点
{
private:int x, y;
public:point(int x, int y){this->x = x;this->y = y;}point(){}int getx(){return x;}int gety(){return y;}void show(){cout << "顶点的坐标为:(" << x << "," << y << ")" << endl;}
};class circle : public point   //由点派生出圆
{
private:int r;     //继承了点的坐标(即圆心)后,新加入成员数据 半径float S;    //圆的面积
public:circle(int x, int y, int r) :point(x, y){this->r = r;S = PAI * r*r;}circle(){}void showdata(){cout << "圆心的坐标为:(" << getx() << "," << gety() << ")" << endl;}void showr(){cout << "底面圆的半径为:" << r << endl;}int getr(){return r;}float getS(){return S;}
};class cone
{
private:int h;float V;  //体积point Dpoint;   //顶点circle Dcircle;   //圆锥底面
public:cone(point P, circle CL){Dpoint = P;Dcircle = CL;}void getV(){h = Dpoint.gety() - Dcircle.gety();V = Dcircle.getS()*h / 3;cout << "圆锥体积为:" << V << endl;}
};int main()
{point P(10,10);   //定义顶点circle C(5,5,2);   //定义底面圆cone CO(P,C);    //定义圆锥P.show();    //输出顶点坐标C.showdata();   //输出圆心坐标C.showr();     //输出圆的半径CO.getV();   //输出体积
}

实验总结

本实验较为简单,复习了派生类和组合类的用法。使得对其构造函数的定义有了更清晰的认识。

小tips:如果定义组合类时,某个成员类已经定义了构造函数但是编译时仍然显示不存在默认构造函数,那么就在该类定义中增加 一个无参数无函数体的构造函数,则可以解决。

派生类组合类 计算圆锥体体积相关推荐

  1. Python编程基础 第四章 编程练习 请定义一个Cylinder类,具体要求为:(1)每个Cylinder类对象可以存储一个圆柱体;2)具有用于初始化半径和高的构造方法;(3)具有计算圆柱体体积

    题目内容: 请定义一个Cylinder类,具体要求为:(1)每个Cylinder类对象可以存储一个圆柱体(包括半径和高):(2)具有用于初始化半径和高的构造方法:(3)具有计算圆柱体体积的方法GetV ...

  2. java组合类,对象组合,定义一个点类,将圆的圆心用点类的对象表示,则圆类定义为一个组合类,仍然能计算圆的面积和周长,并能对圆进行移动。

    对象组合的概念 如果一个对象中的域是其他类的对象,则称这个对象是组合对象,组合对象所在的类是组合类.例如计算机是由其他部件(对象)组成的.通过组合的方式,可以简化对象的创建过程,提高对象的创建效率.从 ...

  3. 定义圆类和圆柱类,打印圆的体积

    定义圆类Circle,包含半径r和属性R,计算圆面积的方法double Area().从Circle类派生出圆柱体类Cylinder类,新增圆柱体的高h和属性H.新增计算圆柱体体积的方法double ...

  4. 【 定义一个长方形Rect类再派生出长方体类Cub】

    [问题描述]定义一个长方形Rect类,派生出长方体类Cub,计算派生类对象(长方体)的表面积和体积. [输入形式]长方体对象的长.宽.高. [输出形式]输出该长方体的表面积和体积. [样例输入] 输入 ...

  5. 面向对象:继承(经典类新式类继承原理、属性查找)、派生

    继承: 继承是指类与类之间的关系,是一种"什么"是"什么"的关系. 继承的功能之一就是用来解决代码重用问题 继承是一种创建新类的方式,在Python中,新建的类 ...

  6. java 枚举类组合在一起_Java,.NET,但为什么在一起?

    java 枚举类组合在一起 十二年前,Sun微系统公司大张旗鼓地宣布了一种新的编程语言和环境,用于使网页更具动态性和"活力". 当然,现在,Java编程语言是一种无处不在的工具,它 ...

  7. Java 圆锥类 圆类 面积 体积

    Java 圆锥类 [实验内容] 一.基础性题目 引入:写一个圆锥类,可以实现打印体积的功能.(10分钟完成) 讲解. 主题:对象的组合 • 抽象一个圆类 成员变量:半径: 成员方法:求面积: • 抽象 ...

  8. C++构造函数基于Rectangle类并派生Cuboid长方体类

    题目:1.设置一个名为Rectangle的类表示矩形.这个类包括: (1)两个名为length和width的float型数据域.他们分别表示矩形的长和宽: (2)创建length和width为指定值的 ...

  9. python 类组合_python类与对象的组合与继承

    1.把类的对象实例化放到一个新的类里面叫做类的组合,组合就是指几个横向关系的类放在一起,纵向关系的类放在一起是继承,根据实际应用场景确定.简单的说,组合用于"有一个"的场景中,继承 ...

最新文章

  1. 【Verilog HDL 训练】第 06 天(边沿检测)
  2. mysq中文编码问题
  3. iOS序列化与反序列化
  4. css实现右侧固定宽度,左侧宽度自适应
  5. Python 技术篇-容易被忽略的尾差问题
  6. Android Gradle 指定 Module 打包
  7. 《21天学通C语言(第7版)》一2.4 小 结
  8. 如何使用python游戏开发模块—pygame?
  9. en结尾的单词_en后缀形容词——动词
  10. 网易视频云:为何说张三丰是个优秀的程序员?
  11. 盘点CSV文件在Excel中打开后乱码问题的两种处理方法
  12. 【2019/02/18测试T3】飘雪圣域
  13. ESL4.5 学习笔记(含感知器内容SVM预备知识)
  14. 红队笔记之痕迹清理技术要点与实战方法总结
  15. IReport 使用记录 主报表和子报表数据传递
  16. c mysql创建索引,如何创建mysql索引
  17. java怎么语音转换成文字_Annyang将语音转换为文本
  18. Kubernetes 集群文件描述符测漏了...
  19. HTTP洪水Gong击网站-演示
  20. 下载和安装Raspberry Pi OS(以前称为Raspbian)

热门文章

  1. java面向对象实验结论及心得_20162305 实验二 Java面向对象程序设计 实验报告
  2. 本题要求实现一个用递归计算1+2+3+…+n的和的简单函数。
  3. ASP.NET CORE 内置的IOC解读及使用
  4. 初识linux之vim工具与bdb调试工具
  5. 逆向编程与反汇编的区别
  6. 配置文档的访问权限 配置LDAP家目录漫游
  7. matlab如何仿真递推型dft算法,递推dft算法
  8. 短波信道模型--多径瑞利信道原理详解及matlab实现
  9. 找不到tinyos的官方下载资源看这篇---TinyOS 资源下载地址
  10. 上海交通大学python期末考试样题加解析_上海交通大学python期末考试样题加解析...