实验九 运算符重载1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验九运算符重载(一)

1、实验目的

理解运算符重载的概念和实质,掌握运算符重载函数的定义方法,掌握将运算符重载为类的成员函数和友元函数的方法,掌握和运用几种常用的用C++语言运算符的重载进行解决问题的方法。

2、实验内容

(1) 编写程序,运用运算符重载实现点类Point的两个对象(即两点)间横、纵坐标的相加

运算。

// 1234.cpp : 定义控制台应用程序的入口点。

//

#include"stdafx.h"

#include

using namespace std;

class point

{public:

point(){x=0;y=0;}

point(int x1,int y1){x=x1;y=y1;}

point operator + (point &p2);

void display();

private:

int x;

int y;

};

point point ::operator + (point &p2)

{point p;

p.x=x+p2.x;

p.y=y+p2.y;

return p;}

void point::display()

{cout<<"("<

int main()

{point p1(3,4),p2(5,-10),p3;

p3=p1+p2;

cout<<"p1=";p1.display();

cout<<"p2=";p2.display();

cout<<"p1+p2=";p3.display();

return 0;

}

(2) 设计一个复数类Complex,重载运算符“*”,“/”,使之能用于复数的乘除。运算符

重载函数作为Complex类的成员函数。

// 1234.cpp : 定义控制台应用程序的入口点。

//

#include"stdafx.h"

#include

using namespace std;

class Complex

{public:

Complex(){real=0;imag=0;}

Complex(double r,double i){real=r;imag=i;}

Complex operator*(Complex &c2);

Complex operator/(Complex &c2);

void display();

private:

double real;

double imag;

};

Complex Complex::operator*(Complex &c2)

{Complex c;

c.real=real*c2.real-imag*c2.imag;

c.imag=imag*c2.real+real*c2.imag;

return c;}

Complex Complex::operator/(Complex &c2)

{Complex c;

c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);

c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);

return c;}

void Complex::display()

{cout<<"("<

int main()

{Complex c1(8,10),c2(9,-18),c3;

c3=c1*c2;

cout<<"c1*c2=";

c3.display();

c3=c1/c2;

cout<<"c1/c2=";

c3.display();

return 0;

}

(3) 设计一个长方形类Triangle,包含长和宽两个私有数据成员。要求重载运算符“+”,

以实现多个矩形对象的面积之和。

// 1234.cpp : 定义控制台应用程序的入口点。

//

#include"stdafx.h"

#include

using namespace std;

//(3) 设计一个长方形类Triangle,包含长和宽两个私有数据成员。要求重载运算符“+”,以实现多个矩形对象的面积之和。

class rectangle

{

private :

int a,b;

protected :int area;

public:

rectangle ()

{

a=0,b=0,area=0;

}

rectangle (int ra,int rb)

{

a=ra;

b=rb;

area=ra*rb;

}

rectangle operator+(rectangle &r2);

void display();

};

rectangle rectangle:: operator+(rectangle &r2)

{

rectangle r;

r.area=area+r2.area ;

return r;

}

void rectangle ::display()

{

cout<<"a "<

相关文档
最新文档