- 13
- 0
- 约2.02千字
- 约 4页
- 2020-08-31 发布于天津
- 举报
实验六 多态性
1. 实验目的
1.掌握运算符重载的方法
2.学习使用虚函数实现动态多态性
2. 实验要求
1.定义Point类,有坐标_x,_y两个成员变量;对Point类重载“++”(自增)、“――”(自减)运算符,实现对坐标值的改变。
2.定义一个车(vehiele)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。观察虚函数的作用。
3. (选做)对实验4中的People类重载“==”运算符和“=”运算符,“==”运算符判断两个people类对象的id属性是否相等;“=”运算符实现People类对象的赋值操作。
3. 实验内容及实验步骤
1.编写程序定义Point类,在类中定义整型的私有成员变量_x_y,定义成员函数Point
operator++();Point operator++(int);以实现对Point类重载“++”(自增)运算符,定义成员函数Point& operator--();Point operator--(int);以实现对Point类重载“--”(自减)运算符,实现对坐标值的改变。程序名:1ab8_1.cpp。
2.编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数,观察其执行情况。再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否成功;把Run、Stop定义为虚函数,再试试看。程序名:lab8_2.cpp。
4. 思考题
1. 如何将一个运算符重载为类的成员函数
函数类型 operator 运算符(形参表)
{
函数体;
}
2. 如何将一个运算符重载为类的友元函数
friend 函数类型 operator 运算符(形参表)
{
函数体;
}
3.如何实现运行时刻的多态
在基类的成员函数前加上virtual,就可以在它的派生类中声明相同名字和类型的成员函数,在运行过程中,系统会自动判断并调用相应类中的成员函数,从而在调用过程中实现多态。
源程序 5.
1.
#includeiostream
using namespace std;
class Point
{
private:
int _x;
int _y;
public:
构函数
Point(){}
Point(int,int);
~Point(){}
-重载
Point operator ++();
Point operator ++(int);
Point operator --();
Point operator --(int);
howPoint();howPoint();howPoint();howPoint();数测试
/*();
();
();
();
();
();
();
();*/
etName();
person[i].setNumber();
person[i].setSex();
person[i].setId();
date[i].setDate();
spaceA=getchar();
}
howPeople();
date[i].showDate();
}*/
2.
直接使用对象.函数的形式可以成功调用函数:
使用基类指针后出现错误,只能调用基类的成员函数:
将基类的成员函数设置成虚函数之后,成功实现调取各个派生类的成员函数:
其中在使用Vehicle类型指针指向Motorcycle类型的对象时会出现错误:
将Vehicle按照虚基类继承,问题解决。
3.
6. 心得体会
学习了解了多态,通过编写程序,进行上机练习,学会了如何利用虚函数实现程序的多态性,进行函数的重载;而且学会了如何对各类运算符进行重载,使得各类运算符满足同类之间的运算,使得程序更加高效;还学会了使用基类指针或引用对基类的派生类中的各类
您可能关注的文档
- 200年湖南高考数学文科试卷带答案.doc
- 2017人教七年级下册期末数学测试卷.doc
- 2017年秋新编人教版小学二年级语文上册教学计划.doc
- 2018 2019年秋季人教部编版七上语文第14课植树的牧羊人精编练习含答案.doc
- 2018 人教版语文八年级下册2017部编版 第五单元 第17课 壶口瀑布 同步练习题 含答案.doc
- 2018届高三年级二轮复习策略与方案.doc
- 2018年整理多元史观解读新课标高考41题资料.doc
- 2018年整理版八年级上册英语unit1 unit5词组资料.doc
- 2018考研政治必考热点红船精神考题汇总.doc
- 208年小学数学毕业检测模拟试卷.doc
原创力文档

文档评论(0)