C++实验5 运算符重载和多态性.docx

上传人:工**** 文档编号:543540306 上传时间:2022-09-13 格式:DOCX 页数:7 大小:75.08KB
返回 下载 相关 举报
C++实验5 运算符重载和多态性.docx_第1页
第1页 / 共7页
C++实验5 运算符重载和多态性.docx_第2页
第2页 / 共7页
C++实验5 运算符重载和多态性.docx_第3页
第3页 / 共7页
C++实验5 运算符重载和多态性.docx_第4页
第4页 / 共7页
C++实验5 运算符重载和多态性.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《C++实验5 运算符重载和多态性.docx》由会员分享,可在线阅读,更多相关《C++实验5 运算符重载和多态性.docx(7页珍藏版)》请在金锄头文库上搜索。

1、实验5 运算符重载与多态性班级 学号 姓名 郑成绩 一、实验目的1掌握用成员函数重载运算符的方法2掌握用友元函数重载运算符的方法3理解并掌握利用虚函数实现动态多态性和编写通用程序的方法4掌握纯虚函数和抽象类的使用二、实验内容1.复数类加减法乘除运算 (用成员函数定义运算符重载)。复数类的定义:class complex /复数类声明 public: /外部接口 complex(double r=0.0,double i=0.0) /构造函数real=r,imag=i; complex operator +(complex c2); /运算符+重载成员函数 complex operator -

2、(complex c2); /运算符-重载成员函数complex operator *(complex ); /运算符*重载成员函数complex operator /(complex); /运算符/重载成员函数complex operator =(complex c2); /运算符=重载成员函数 void display(); /输出复数 private: /私有数据成员 double real; /复数实部 double imag; /复数虚部; 实际程序:#includeusing namespace std;class complex /复数类声明 public: /外部接口 comp

3、lex(double r=0.0,double i=0.0) /构造函数real=r,imag=i; complex operator +(complex c2); /运算符+重载成员函数 complex operator - (complex c2); /运算符-重载成员函数complex operator *(complex c2 ); /运算符*重载成员函数complex operator /(complex c2); /运算符/重载成员函数complex operator=(complex c2); /运算符=重载成员函数void display(); /输出复数 private: /

4、私有数据成员 double real; /复数实部 double imag; /复数虚部; complex complex:operator+(complex c2)double R=real+c2.real;double I=imag+c2.imag;return complex(R,I); complex complex: operator - (complex c2)double R=real-c2.real;double I=imag-c2.imag;return complex(R,I); complex complex:operator *(complex c2)double R=

5、real*c2.real-imag*c2.imag;double I=real*c2.imag+imag*c2.real;return complex(R,I); complex complex:operator /(complex c2)double R=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);double I=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);return complex(R,I); complex complex:o

6、perator=(complex c2)double R=c2.real;double I=c2.imag;return complex(R,I);void complex:display()coutreal+imagiendl;void main()complex c1(1,2);coutc1=;c1.display();complex c2(7,8);coutc2=;c2.display();complex c3(2.5,5);coutc3=;c3.display();complex c4(5.5,3);coutc4=;c4.display();complex c5=c1+c2;coutc

7、1+c2=;c5.display();complex c6=c1-c3;coutc1-c3=;c6.display();complex c7=c1*c4;coutc1*c4=;c7.display();complex c8=c1/c2;coutc1/c2=;c8.display();complex c9=c4;cout (complex c1,complex c2); /运算符重载友元函数friend int operator=(complex c1,complex c2); /运算符=重载友元函数friend int operator (complex c1,complex c2); /运算

8、符重载友元函数friendint operator=(complex c1,complex c2); /运算符=重载友元函数friendint operator =(complex c1,complex c2); /运算符=重载友元函数friendint operator !=(complex c1,complex c2); /运算符!=重载友元函数void display( ); /显示复数的值 private: /私有数据成员 double real; double imag;实际程序:#include#includeclass complex/复数类声明public: complex(d

9、ouble r=0.0,double i=0.0)real=r;imag=i; /构造函数friend int operator (complex c1,complex c2); /运算符重载友元函数friend int operator=(complex c1,complex c2); /运算符=重载友元函数friend int operator (complex c1,complex c2); /运算符重载友元函数friend int operator=(complex c1,complex c2); /运算符 (complex c1,complex c2)double A=sqrt(c1

10、.real*c1.real+c1.imag*c1.imag);double B=sqrt(c2.real*c2.real+c2.imag*c2.imag);if (AB)return 1;else return 0;int operator=(complex c1,complex c2)double A=sqrt(c1.real*c1.real+c1.imag*c1.imag);double B=sqrt(c2.real*c2.real+c2.imag*c2.imag);if (A=B)return 2;else return 0;int operator(complex c1,complex

11、 c2)double A=sqrt(c1.real*c1.real+c1.imag*c1.imag);double B=sqrt(c2.real*c2.real+c2.imag*c2.imag);if (AB)return -1;else return 0;int operator=(complex c1,complex c2)double A=sqrt(c1.real*c1.real+c1.imag*c1.imag);double B=sqrt(c2.real*c2.real+c2.imag*c2.imag);if (A=B)return -1;else return 0;int operator=(complex c1,complex c2)if (c1.real=c2.real&c1.imag=c2.imag)return 1;else return 0;int operator!=(complex c1,complex c2)double A=sqrt(c1.real*c1.real+c1.imag*c1.imag);do

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号