结果:
![](https://i-blog.csdnimg.cn/blog_migrate/f508d84f2e471b8c6b9125b7439b7383.png)
2.调试下列程序
。
#include<iostream> using namespace std; class complex { public: complex(){real=imag=0.0;} complex(double r){real=r;imag=0.0;} complex(double r,double i){real=r;imag=i;} friend complex operator + (const complex &c1,const complex &c2); friend complex operator - (const complex &c1,const complex &c2); friend complex operator * (const complex &c1,const complex &c2); friend complex operator / (const complex &c1,const complex &c2); friend void print(const complex &c); private: double real,imag; }; complex operator + (const complex &c1,const complex &c2) { return complex(c1.real+c2.real,c1.imag+c2.imag); } complex operator - (const complex &c1,const complex &c2) { return complex(c1.real-c2.real,c1.imag-c2.imag); } complex operator * (const complex &c1,const complex &c2) { return complex(c1.real*c2.real-c1.imag*c2.imag,c1.real*c2.imag+c1.imag*c2.real); } complex operator / (const complex &c1,const complex &c2) { return complex((c1.real*c2.real+c1.imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag),(c1.imag*c2.real-c1.real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag)); } void print(const complex &c) { if(c.imag<0) cout<<c.real<<c.imag<<"i"; else cout<<c.real<<"+"<<c.imag<<"i"; } int main() { complex c1(2.0),c2(3.0,-1.0),c3; c3=c1+c2; cout<<"\nc1+c2= "; print(c3); c3=c1-c2; cout<<"\nc1-c2= "; print(c3); c3=c1*c2; cout<<"\nc1*c2= "; print(c3); c3=c1/c2; cout<<"\nc1/c2= "; print(c3); c3=(c1+c2)*(c1-c2)*c2/c1; cout<<"\n(c1+c2)*(c1-c2)*c2/c1= "; print(c3); cout<<endl; return 0; }
结果:
![](https://i-blog.csdnimg.cn/blog_migrate/3421eeb0ce570ebe405b2cc473882fa9.png)
3.定义一个Time类用来保存时间(时,分,秒),通过重载操作符“+”实现两个时间的相加。(sy7_3.cpp)
程序如下:
#include <stdio.h>
class Time
{
public:
Time(){ hours=0;minutes=0;seconds=0;} //无参构造函数
Time(int h, int m,int s) //重载构造函数
{
hours=h; minutes=m; seconds=s;
}
Time operator +(Time&); //操作符重载为成员函数,返回结果为Time类
void gettime();
private:
int hours,minutes,seconds;
};
Time Time::operator +(Time& time)
{
int h,m,s;
s=time.seconds+seconds;
m=time.minutes+minutes+s/60;
h=time.hours+hours+m/60;
Time result(h,m%60,s%60);
return result;
}
void Time::gettime()
{
printf("%d:%d:%d\n",hours,minutes,seconds);
}
int main( )
{
Time t1(9,35,45),t2(12,15,32),t3;
t3=t1+t2;
t3.gettime();
return 0;
}
结果:
![](https://i-blog.csdnimg.cn/blog_migrate/5719962dfeeb51073f010e052ca56b5a.png)