实验?/p>
多态?/p>
1.
实验目的
1.
掌握运算符重载的方法
2.
学习使用虚函数实现动态多态?/p>
2.
实验要求
1.
定义
Point
类,有坐?/p>
_x
?/p>
_y
两个成员变量;对
Point
类重?/p>
?/p>
++
?
自增
)
?/p>
?/p>
――?
自减
)
?/p>
算符,实现对坐标值的改变?/p>
2.
定义一个车
(vehiele)
基类,有
Run
?/p>
Stop
等成员函数,由此派生出自行车
(bicycle)
类、汽?/p>
(motorcar)
类,
?/p>
bicycle
?/p>
motorcar
派生出摩托车
(motorcycle)
类,
它们都有
Run
?/p>
Stop
等成
员函数。观察虚函数的作用?/p>
3. (
选做
)
对实?/p>
4
中的
People
类重载“==”运算符和?/p>
=
”运算符?/p>
“==”运算符判断?/p>
?/p>
people
类对象的
id
属性是否相等;
?/p>
=
”运算符实现
People
类对象的赋值操作?/p>
3.
实验内容及实验步?/p>
1.
编写程序定义
Point
类,在类中定义整型的私有成员变量
_x_y
,定义成员函?/p>
Point&
operator++()
?/p>
Point operator++(int)
;以实现?/p>
Point
类重载?/p>
++?
自增
)
运算符,定义成员?/p>
?/p>
Point
?/p>
operator
--
()
?/p>
Point operator
--
(int)
;以实现?/p>
Point
类重载“--?/p>
(
自减
)
?/p>
算符,实现对坐标值的改变。程序名?/p>
1ab8_1
?/p>
cpp
?/p>
2.
编写程序定义一个车
(vehicle)
基类,有
Run
?/p>
Stop
等成员函数,由此派生出自行车
(bicycle)
类、汽?/p>
(motorcar)
类,?/p>
bicycle
?/p>
motorcar
派生出摩托车
(motorcycle)
类,它们都有
Run
?/p>
Stop
等成员函数。在
main()
函数中定?/p>
vehicle
?/p>
bicycle
?/p>
motorcar
?/p>
motorcycle
的对象,?/p>
用其
Run()
?/p>
Stop()
函数,观察其执行情况。再分别?/p>
vehicle
类型的指针来调用这几个对?/p>
的成员函数,
看看能否成功?/p>
?/p>
Run
?/p>
Stop
定义为虚函数?/p>
再试试看?/p>
程序名:
lab8_2
?/p>
cpp
?/p>
4.
思考题
1.
如何将一个运算符重载为类的成员函数?
函数类型
operator
运算符(形参表)
{
函数体;
}
2.
如何将一个运算符重载为类的友元函数?
friend
函数类型
operator
运算符(形参表)
{
函数体;
}
3.
如何实现运行时刻的多态?
在基类的成员函数前加?/p>
virtual
,就可以在它的派生类中声明相同名字和类型的成员函数,
在运行过程中,系统会自动判断并调用相应类中的成员函数,从而在调用过程中实现多态?/p>
5.
源程?/p>
1.
lab8_1.cpp
#include<iostream>