您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页南昌航空大学实验报告6运算符重载

南昌航空大学实验报告6运算符重载

来源:华佗健康网


南昌航空大学实验报告 2011年11月15日

课程名称: 面向对象程序设计B 实验名称:运算符重载 班级:102022 姓名:林书晨 指导老师评定: 签名: 一.实验目的

1.理解运算符重载(非成员形式和成员形式) 2.学习重载几类运算符(++,=,!=,+,-,==等)

二.实验内容

应用VC++6.0的构件一个复数类Complex,试对下列几个运算符进行重载:++,=,!=,+,-,==,其中要求要有成员重载形式和友元重载形式,而且,++运算符要求实现先加和后加两种形式。

该类定义原型说明: Class complex {

Public:

Complex(double r=0,double i=0); Complex &operator+(complex &c); Complex operator -(complex &c); Complex operator *(complex &c);

Friend Complex operator /(complex &c1,complex &c2); Friend int operator ==(complex &c1,complex &c2); Friend int operator !=(complex &c1,complex &c2); //Friend Complex operator ++(complex &c); Complex operator ++(); Void disp(); Private:

Double real; Double imag; };

四.概要设计

class complex{ public:

double real; double imag;

complex(double x,double y) //构造函数; {

real=x;

imag=y; }

friend complex operator -(complex a,complex b); //用友元函数对-号重载; friend int operator==(complex a,complex b); friend int operator!=(complex a,complex b);

complex operator++(); //用成员函数对前加++重载; complex operator++(int); //用成员函数对后加++重载; complex operator=(complex a) //用成员函数对=重载; {

real=a.real; imag=a.imag; return *this; }

四.详细设计

# include class complex{ public:

double real; double imag;

complex(double x,double y) //构造函数; {

real=x; imag=y; }

friend complex operator -(complex a,complex b); //用友元函数对-号重载; friend int operator==(complex a,complex b); friend int operator!=(complex a,complex b);

complex operator++(); //用成员函数对前加++重载; complex operator++(int); //用成员函数对后加++重载; complex operator=(complex a) //用成员函数对=重载; {

real=a.real; imag=a.imag; return *this; }

void show() //成员函数用于输出; {

cout<<\"real :\"<};

complex operator+(complex a,complex b) //++的友元重载函数进行定义; {

complex temp(0.0,0.0); temp.real=a.real+b.real; temp.imag=a.imag+b.imag; return temp; }

complex operator-(complex a,complex b) {

complex temp(0.0,0.0); temp.real=a.real-b.real;

temp.imag=a.imag-b.imag; return temp; }

int operator==(complex a, complex b) {

if(a.real==b.real&&a.imag==b.imag) return 1; return 0; }

int operator!=(complex a ,complex b) {

if(a.imag!=b.imag||a.real!=b.real) return 1; return 0; }

complex complex::operator ++() //对符号++成员重载函数进行类外定义; {

real=real+real; imag=imag+imag;

return *this; //返回当前对象; }

complex complex::operator ++(int) {

++real; ++imag;

return *this; //返回当前对象; }

void main() //主函数; {

complex com1(1.1,2.2),com2(3.3,4.4),total(1.1,2.2),ca(0.0,0.0),fuzhi(0.0,0.0); if(com1==total)

cout<<\"you yuan xiang deng\"<cout<<\"you yuan bu xiang deng \"<ca=com2-com1;

cout<<\"lei wai jia hao : \"<cout<<\"you yuan jian hao : \"<cout<<\"fu zhi real:\"<fuzhi.show(); //调用成员函数; com1++; ++com2;

cout<<\"qian zhui\"<com1.show(); cout<<\"hou zhui :\"<com2.show(); return ; }

五.程序调试

//调用成员函数; //调用成员函数;

六.实验总结

在实验中其实程序的写入并不难,只是我们应该注意一些具体的细节,比如函数的初始化,函数的具体方法等等。

七.附录

# include class complex{ public:

double real; double imag;

complex(double x,double y) {

real=x; imag=y; }

friend complex operator -(complex a,complex b); friend int operator==(complex a,complex b); friend int operator!=(complex a,complex b);

complex operator++(); complex operator++(int); complex operator=(complex a) {

real=a.real; imag=a.imag; return *this; }

void show() {

cout<<\"real :\"<complex operator+(complex a,complex b) {

complex temp(0.0,0.0); temp.real=a.real+b.real; temp.imag=a.imag+b.imag; return temp; }

complex operator-(complex a,complex b) {

complex temp(0.0,0.0); temp.real=a.real-b.real;

temp.imag=a.imag-b.imag;

return temp; }

int operator==(complex a, complex b) {

if(a.real==b.real&&a.imag==b.imag) return 1; return 0; }

int operator!=(complex a ,complex b) {

if(a.imag!=b.imag||a.real!=b.real) return 1; return 0; }

complex complex::operator ++() {

real=real+real; imag=imag+imag; return *this; }

complex complex::operator ++(int) {

++real; ++imag;

return *this; }

void main() {

complex com1(1.1,2.2),com2(3.3,4.4),total(1.1,2.2),ca(0.0,0.0),fuzhi(0.0,0.0); if(com1==total)

cout<<\"you yuan xiang deng\"<cout<<\"you yuan bu xiang deng \"<cout<<\"lei wai jia hao : \"<cout<<\"you yuan jian hao : \"<cout<<\"fu zhi real:\"<cout<<\"qian zhui\"<com1.show(); cout<<\"hou zhui :\"<

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务