南昌航空大学实验报告 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 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<<\"lei wai jia hao : \"< cout<<\"qian zhui\"< 五.程序调试 //调用成员函数; //调用成员函数; 六.实验总结 在实验中其实程序的写入并不难,只是我们应该注意一些具体的细节,比如函数的初始化,函数的具体方法等等。 七.附录 # include 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 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\"< 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务