实验4 运算符重载

  • 格式:doc
  • 大小:30.00 KB
  • 文档页数:3

实验3 运算符重载
1、实验目的和要求:
掌握运算符重载的语法要点,学会运算符重载的编程方法。

2、实验内容
(1)先读程序,写出程序的输出结果,再运行程序验证程序的输出。

用友元重载方式重新编写程序。

#include <iostream>
using namespace std;
class Vector
{ public:
Vector(int i = 0,int j = 0) {x=i;y=j;}
Vector operator+=(Vector v)
{ Vector temp;
temp.x = x+v.x;
temp.y = y+v.y;
return temp;
}
Vector operator-=(Vector v)
{ Vector temp( x-v.x, y-v.y);
return temp;
}
void display()
{ cout<<"("<<x<<","<<y<<")"<<endl;}
private:
int x,y;
};
void main()
{
Vector v1(1,2),v2(3,4),v3,v4;
v3=v1+=v2;
v4=v1-=v2;
cout<<"v1="; v1.display();
cout<<"v2="; v2.display();
cout<<"v3="; v3.display();
cout<<"v4="; v4.display();
}
(2)定义一个有理数类Rational,重载算术运算符。

写一个完整的程序,测试各种运算符的使用,要求输出化简后的计算结果,注意分母不能为零!测试代码样例:
Rational A(2,6),B(1,-2),C;
C = -A; C.print();//输出1/3
C = A + B ; C.print(); //输出-1/6
C = C*A/B; C.print();
C = ++A ; A.print; C.print();
C = B-- ; B.print; C.print();
(3) 设计集合类(Set),用运算符重载实现并(+),差(—),交(×)等操作,并重载=
和-= ,实现Set S1,S2;… s1 = s2; 和S1-=S2;集合S1中去掉S2中的元素的操作。

(4)设计日期类(Date),重载下列运算符实现相关操作:
(1)重载-(日期相差天数)
(2)重载+(Date+int)
(3)重载+(int+Date)
(4) 重载++ ( Date d; d++; ++d; ++++d;)
(5)设计字符串类(String), 定义各种构造函数并实现以下运算符重载:(1)重载+(连接)
(2)重载==(相等)和<(小于)
(3)重载[]
String str1;
str1.set("I love ");
String str2("you ");
String str3 = str1+str2; str3.print();
String str4=str1+"love "+"???"; str4.print();
if(str3<str2) cout<<”str3<str2”<<endl;
else if(str3==str2) cout<<”str3==str2”<<endl; else cout<<”str3>str2”<<endl;
str1[1] = str2[1];
str1.print(); str2.print();。