- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三 多态性
实验课程名:面向对象程序设计(C++)
专业班级: 计算机应用技术 学号: 201130410115 姓名: 熊柳强
实验时间: 2012-10-9 实验地点: k4-207 指导教师: 谢晋
3.1实验目的和要求
(1) 了解多态性的概念。
(2) 掌握运算符重载的基本方法。
(3) 掌握虚函数的定义和使用方法。
(4) 掌握纯虚函数和抽象类的概念和用法。 二、实验内容
1.分析并调试下列程序,写出程序的输出结果,并解释输出结果。
//test5_1.cpp
#includeiostream
using namespace std;
class B{
public:
virtual void f1 (double x)
{cout”B::f1(double)”xendl;
}
void f2(double x)
{cout”B::f2(double)”2*xendl;
}
void f3(double x)
{cout”B::f3(double)”3*xendl;
}
}
class D:public B{
public:
virtual void f1(double x)
{cout”D::f1(double)”xendl;
}
void f2(double x)
{cout”D::f2(double)”2*xendl;
}
void f3(double x)
{cout”D::f3(double)”3*xendl;
}
};
int main()
{D d;
B*pb=d;
D*pd=d;
pb-f1(1.23);
pb-f1(1.23);
pb-f2(1.23);
pb-f3(1.23);
pb-f3(3.14);
return 0;
}
运行结果:
2.编写一个程序,其中设计一个时间类Time,用来保存时、分、秒等私有数据成员,通过重载操作符“+”实现两个时间的相加。要求将小时范围限制在大于等于0,分钟范围限制在0~59,秒钟范围限制在0~59秒。
#includeiostream
using namespace std;
class Time{
public:
Time(int h=0,int m=0,int s=0);
Time operator+(Time a);
void disptime(string);
private:
int hourse;
int minutes;
int seconds;
};
Time::Time(int h,int m,int s)
{
hourse=h;
minutes=m;
seconds=s;
}
Time Time::operator+(Time a)
{
Time temp;
temp.hourse=hourse+a.hourse;
temp.minutes=minutes+a.minutes;
temp.seconds=seconds+a.seconds;
return temp;
}
void Time::disptime(string)
{
cout时间为:;
couthourse:;
coutminutes:;
coutseconds;
cout\thourse时minutes分seconds秒endl;
}
int main()
{
Time A(5,6,7),B(8,9,10),A1;
A1=A+B;
A1.disptime(相加后的);
return 0;
}
运行结果:
3.给出下面的抽象基类container;
class container
{
protected:
double radius;
public:
container(double radius1);
virtual double surface_area()=0;
virtual double volume()=0;
};
要求建立3个继承container的派生类cube、sphere与cylinder,让每一个派生类都包含虚函数surface_area()和volume(),分别用来计算正方体、球体和圆柱体的表面积及体积。要求写出主程序,应用C++的多态性,分别计算边长为6.0的正方体、半径为5.0的球体,以及半径为5.0和高为6.0的圆柱体的表面积和体积。
#includeiostream
using namespace std;
class container{
protected:
doub
您可能关注的文档
- 宜居佳境 山水浦贝.doc
- 宜宾县招商引资策略告报告.doc
- 定额与预算复习资料.doc
- 宜春学院论文开题报样本宜春学院论文开题报告样本.doc
- 宝宝4个月添加辅食宝4个月添加辅食.doc
- 宝宝发烧应急3要素宝发烧应急3要素.doc
- 宝宝小药箱 200宝宝小药箱 2007.doc
- 宝宝常见病和用药总宝宝常见病和用药总结.doc
- 宝宝喂养注意事项宝喂养注意事项.doc
- 宝宝护理知识大全宝护理知识大全.doc
- 儿童遗粪症的健康宣教.pptx
- 儿童急性髓系白血病的健康宣教.pptx
- 责任成就青春力.pptx
- 2024七年级英语下册 Unit 6 Seasons Lesson 34 Steven's Report教学实录(新版)冀教版.docx
- Module11 Unit1 课时二教案设计海南海口2024-2025学年外研版九年级英语上册.docx
- 2025年班级建设方案.pptx
- 山东省郯城县九年级历史下册 第10课 苏联的改革和解体教学实录 新人教版.docx
- 传染病法律知识培训课件.pptx
- 6.3.2黄土高原教学设计 2023-2024学年人教版八年级地理下册.docx
- 杭州市余杭区城东中学人教版九年级下册历史与社会第八单元第一课 不断变化的人口 教学设计.docx
文档评论(0)