C++c语言多态性与虚函数.docx
- 文档编号:12187719
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:17
- 大小:121.04KB
C++c语言多态性与虚函数.docx
《C++c语言多态性与虚函数.docx》由会员分享,可在线阅读,更多相关《C++c语言多态性与虚函数.docx(17页珍藏版)》请在冰豆网上搜索。
C++c语言多态性与虚函数
淮海工学院计算机科学系
实验报告书
课程名:
《C++程序设计
(二)》
题目:
多态性与虚函数
班级:
软件102班
学号:
111003215
姓名:
鹿迅
1.实验内容或题目
(1)声明二维坐标类作为基类派生圆的类,把派生类圆作为基类,派生圆柱体类。
其中,基类二维坐标类有成员数据:
x、y坐标值;有成员函数:
构造函数实现对基类成员数据的初始化、输出的成员函数,要求输出坐标位置。
派生类圆类有新增成员数据:
半径(R);有成员函数:
构造函数实现对成员数据的初始化、计算圆面积的成员函数、输出半径的成员函数。
派生圆柱体类新增数据有高(H);新增成员函数有:
构造函数、计算圆柱体体积的函数和输出所有成员的函数。
请完成程序代码的编写、调试。
(2)教材393页7-8题。
(3)教材416页1、4、5题。
2.实验目的与要求
(1)理解继承与派生的概念
(2)掌握通过继承派生出一个新的类的方法
(3)了解多态性的概念
(4)了解虚函数的作用与使用方法
3、实验步骤与源程序
实验步骤
第一题基本上就是书本上的例题,只要稍加改变即可;
393页的7-8题都是书本上的,照抄就可以了,我想老师出这个题主要就是想要我们熟悉一下多态性与虚函数的编写过程;
P416页的第一题倒是有点难,需要用到第八章的知识,翻阅了好多次,才做出来。
P416页的4,5两题,基本上都是根据书本立体改写的,是我们熟悉编写程序的过程,打好基础。
源代码
1.#include
usingnamespacestd;
classpoint
{
public:
point(floata=0,floatb=0);
voidsetpoint(float,float);
floatget_x()const{returnx;}
floatget_y()const{returny;}
friendostream&operator<<(ostream&,point&);
protected:
floatx,y;
};
point:
:
point(floata,floatb)
{
x=a;
y=b;
}
voidpoint:
:
setpoint(floata,floatb)
{
x=a;
y=b;
}
ostream&operator<<(ostream&output,constpoint&p)
{
output<<"["<
returnoutput;
}
classcircle:
publicpoint
{
public:
circle(floata=0,floatb=0,floatr=0):
point(a,b),radius(r){}
floatarea()const{return3.14*radius*radius;}
floatgetradius()const{returnradius;}
protected:
floatradius;
};
classcyl:
publiccircle
{
public:
cyl(floata=0,floatb=0,floatr=0,floath=0):
circle(a,b,r),height(h){}
floatvolume()const{return3.14*radius*radius*height;}
friendostream&operator<<(ostream&,point&);
floatgetheight()const{returnheight;}
protected:
floatheight;
};
ostream&operator<<(ostream&output,constcyl&cy)
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 多态性 函数