C++ 实验八

原创 2013年12月03日 11:27:17


实验八
多态实现
【实验目的】
1、 了解继承和多态的作用和实现方式,掌握动态联编方法;
2、 掌握使用C++语言的抽象类和派生类实现继承性;
【实验内容】
1、 设计一个立体图形类(CStereoShape类),并满足如下要求:
•CStereoShape类有一个纯虚函数GetArea,能够获取立方体的表面积;
•CStereoShape类有一个纯虚函数GetVolume,能够获取立方体的体积;
2、 设计一个立方体类(CCube类),该类继承于CStereoShape类,并满足如下
要求:
•CCube类有一个带参数的构造函数,其参数分别对应于立方体的长、宽、
高。
•用一个成员函数来实现对立方体长、宽、高的设置。
•重载CStereoShape类的GetArea和GetVolume,分别完成立方体的表面积和
体积的计算。
3、 设计一个球体类 (CSphere),该类继承于CStereoShape类,并满足如下要求:
•CSphere类有一个带参数的构造函数,其参数对应于球体的半径。
•用一个成员函数来实现对球体半径的设置。
•重载CStereoShape类的GetArea和GetVolume,分别完成球体的表面积和体
积的计算。
4、 实现一个main函数,在main函数中至少完成如下工作:
•实例化一个CCube类的对象a_cube和CSphere类的对象c_sphere;
•定义一个CStereoShape类的指针p;
•将a_cube的长、 宽和高分别设置为4、 5和6; 将p指向a_cube, 通过p将a_cube
的表面积和体积打印到屏幕上;
•将c_sphere的半径设置为7;将p指向c_sphere,通过p将c_sphere的表面积和
体积打印到屏幕上。

#include <iostream>
using namespace std;
const double PI=3.14;
class CStereoShape{
public:
	virtual double GetArea()=0;
	virtual ~CStereoShape(){}	virtual double GetVolume()=0;
};
class CCube:public CStereoShape{
public:
	CCube(double c,double k,double g){
		setCKG(c,k,g);
	}
	void setCKG(double c,double k,double g){
		length=c;
		width=k;
		hight=g;
	}
	double GetArea(){
		return (length*width+width*hight+length*hight)*2;
	}
	double GetVolume(){
		return hight*length*width;
	}
private:
	double length,width,hight;
};
class CSphere :public CStereoShape{

public:
	CSphere(double _radius){
		radius=_radius;
	}
	void setRadius(double _radius){
		radius=_radius;
	}
	double GetArea(){
		return PI*radius*radius;
	}
	double GetVolume(){
		return 4.0/3*PI*radius*radius*radius;
	}
private:
	double radius;
};
int main(){
	CCube a_cube(4,5,6);
	CSphere c_sphere(7);
	CStereoShape *p;
	p=&a_cube;
	cout<<"a_cube  \tArea:"<<p->GetArea()<<"\tVolume"<<p->GetVolume()<<endl;
	p=&c_sphere;
	cout<<"c_sphere\tArea:"<<p->GetArea()<<"\tVolume"<<p->GetVolume()<<endl;
	return 0;
}

王爽《汇编语言》(第三版)实验8解析

先贴出来代码: assume cs:code code segment mov ax, 4C00H int 21H start: mov ax, 0 s: no...
  • qq_23880193
  • qq_23880193
  • 2014年12月31日 14:24
  • 2136

王爽 汇编语言第二版 实验8 代码详细分析

代码在debug中对应机器指令如下: C:\DOCUME~1\ADMINI~1>debug e:\code\testJmp.exe -U 0C16:0005 B80000 MOV ...
  • lvlufeng
  • lvlufeng
  • 2012年10月08日 18:09
  • 9991

SDUT 3364 数据结构实验之图论八:欧拉回路

点击打开题目链接 #include using namespace std; bool Graph[1010][1010]; bool vis[1010]; int du[1010]; int s...
  • zhidetian
  • zhidetian
  • 2016年08月03日 09:11
  • 336

操作系统实验八实验报告

学堂在线-清华操作系统课程-实验七实验报告
  • jasonyuchen
  • jasonyuchen
  • 2017年08月15日 21:59
  • 269

王爽《汇编语言》实验8:分析一个奇怪的程序

;分析下面的程序, assume cs:codesg codesg segment mov ax,4c00h int 21h start: mov ax,0 ...
  • hesays
  • hesays
  • 2014年10月18日 14:54
  • 3489

王爽《汇编语言》实验8 分析一个奇怪的程序

我将画出内存中内容来解释这个实验,易于理解。
  • NavySean
  • NavySean
  • 2016年12月06日 17:22
  • 636

C++ 实验八

#include #include using namespace std; const double PI = 3.1415926; class CStereoShape{ public: ...
  • araca
  • araca
  • 2013年11月22日 14:48
  • 391

Linux高级开发--system V 进程间通信 实验报告

实验名称: Linux高级开发 system V 进程间通信 实验报告   姓名: _______罗海员_________ 学号: ____201458506232_______ 班级: ...
  • Sailor_luo
  • Sailor_luo
  • 2016年12月28日 21:49
  • 808

TCP/IP协议分析实验

TCP/IP协议数据包简要分析
  • qq_21842575
  • qq_21842575
  • 2016年12月06日 19:40
  • 653

实验8 模板

1.实验目的和要求: (1)  理解函数模板、类模板,应用模板函数、模板类。 2. 实验内容 (1)用函数模板方式设计一个函数模板sort,采用直接插入排序方式对数据进行排序,并对整数序列和...
  • dutmail
  • dutmail
  • 2013年05月19日 09:05
  • 1189
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ 实验八
举报原因:
原因补充:

(最多只允许输入30个字)