一、实验目的
1.掌握运算符重载的方法;
2.理解虚函数与多态性;
3.实现运行时多态性的程序设计。
二、实验内容
(一)
定义一个复数(Complex)类,并重载运算符+和-,使得两个复数可以进行加法和减法的运算,注意:加法和减法可能是复数加减上另一个复数,也可能是复数加上一个普通的整数;
(二)
定义一个交通工具(Vehicles)基类,包含run、stop成员函数,由此派生出自行车(Bicycle)类、汽车(Car)类,从Bicycle和Car派生出摩托车(Motorcycle)类,它们都有run、stop等成员函数,定义一个包含7个元素的Vehicles类型的数组,在数组中存入1个Vehicles对象,1个Car对象,3个Bicycle对象以及2个Motorcycle对象,遍历此数组,观察虚函数的作用。
(一)
#include<iostream>
using namespace std;
class Complex{
public:
//构造函数
Complex(){real=0;imag=0;}
Complex(double r,double i){real=r;imag=i;}
~Complex(){} //析构函数
//运算符重载
Complex operator + (Complex &c2){ //复数加法
return Complex(real+c2.real,imag+c2.imag);
}
Complex operator + (double &r){
//复数与实数加法,复数在运算符前面
retu