栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ 实验四 继承与派生1

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ 实验四 继承与派生1

文章目录
    • 前言
    • 一、要求
    • 二、分析
    • 三、代码
    • 四、 结果

前言

本文章是 【C++笔记】 专栏的文章,主要是C++黑马的笔记、自己的实验与课设
C++笔记 传送门

一、要求

【项目】编写程序计算出球、圆柱和圆锥的表面积和体积。
【要求】

  1. 定义一个基类圆类至少含有一个数据成员半径
  2. 定义基类的派生类:球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数
  3. 在主函数中求球、圆柱、圆锥的表面积和体积
二、分析

分别定义Circle类,Ball类,Cylinder类,Cone类,并让Ball类,Cylinder类,Cone类分别继承Circle类,在Circle类中定义纯虚函数virtual void show() = 0,之后在Ball类,Cylinder类,Cone类中对show函数重写。在main函数中,分别新建Ball,Cylinder,Cone的指针,通过数据成员初始化采用成员初始化列表并调用show函数

三、代码

提示:所有实验源码已在github整理

#include 
#include 
using namespace std;
#define PI 3.1415926

class Circle
{
public:
	double R;
	virtual void show() = 0;
private:

};

//球
class Ball :public Circle
{
public:
	Ball(double radius)
	{
		R = radius;
	}
	void show()
	{
		cout << "球的表面积为  " << 4 * PI*R*R << "  球的体积为  " << 4.00 / 3.00*PI*R*R*R << endl;
	}
private:

};

//圆柱
class Cylinder :public Circle
{
public:
	Cylinder(double radius, double heigh)
	{
		R = radius;
		H = heigh;
	}
	void show()
	{
		cout << "圆柱的表面积为  " << 2 * PI*R*R + PI * 2 * R*H << "  圆柱的体积为  " << PI * R*R*H << endl;
	}
private:
	double H;
};

//圆锥
class Cone :public Circle
{
public:
	Cone(double radius, double heigh, double line)
	{
		R = radius;
		H = heigh;
		L = line;
	}
	void show()
	{
		cout << "圆锥的表面积为  " << PI * R*L + PI * R*R << "  圆锥的体积为  " << PI * R*R*H / 3 << endl;
	}
private:
	double H;
	double L;
};

int main()
{
	Circle * ball = new Ball(2);
	ball->show();
	delete ball;

	Circle * cylinder = new Cylinder(2, 2);
	cylinder->show();
	delete cylinder;

	Circle * cone = new Cone(2, 2, 2);
	cone->show();
	delete cone;

	system("pause");
	return 0;
}
四、 结果

通过本次实验,学习了对类的继承与派生,利用共同成员R及函数重写极大简化了代码,组织结构清晰,可读性强,利于前期和后期的扩展以及维护

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928210.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号