一、填空
1、0,2,10
二、编程
1、
#include <iostream>
using namespace std;
class Complex
{
private:double real;//实部double imag;//虚部
public://有参构造函数Complex(double r, double i):real(r), imag(i){}//复数加法运算符重载Complex operator+(const Complex &other)const{return Complex(real+other.real,imag+other.imag);}//复数与实数加法运算符重载Complex operator+(double s)const{return Complex(real+s,imag);}//实数与复数加法运算符重载friend Complex operator+(double s,const Complex &c);//复数减法运算符重载Complex operator-(const Complex &other)const{return Complex(real-other.real,imag-other.imag);}//输出复数void show()const{cout << "(" << real << ", " << imag << ")" << endl;}
};
//实数与复数加法运算符重载的实现
Complex operator+(double s, const Complex &c)
{return Complex(s+c.real,c.imag);
}
int main()
{Complex a(4,3);Complex b(2,6);Complex c(0,0);c=a+b;c.show();c=4.1+a;c.show();c=b+5.6;c.show();return 0;
}
2、
#include <iostream>
#include <ctime>
using namespace std;
class Time
{
private:int hours; //小时int minutes; //分钟int seconds; //秒
public://构造函数Time(int h,int m,int s):hours(h),minutes(m),seconds(s){}//加法操作Time operator+(const Time &other)const{int total_seconds=seconds+other.seconds+60*(minutes+other.minutes)+3600*(hours+other.hours);int new_seconds=total_seconds%60;int new_minutes=(total_seconds/60)%60;int new_hours=total_seconds/3600;return Time(new_hours,new_minutes,new_seconds);}//减法操作Time operator-(const Time &other)const{int total_seconds=seconds-other.seconds+60*(minutes-other.minutes)+3600*(hours-other.hours);if(total_seconds<0){total_seconds+=3600*24;//如果小于0,借一天}int new_seconds=total_seconds%60;int new_minutes=(total_seconds/60)%60;int new_hours=total_seconds/3600;return Time(new_hours,new_minutes,new_seconds);}//读取时间void setTime(int h,int m,int s){hours=h;minutes=m;seconds=s;}//输出时间void show()const{cout << hours << ":" << minutes << ":" << seconds << endl;}
};
int main()
{Time t1(14,25,13);Time t2(3,12,23);//加法Time t3=t1+t2;cout << "t1+t2=";t3.show();//减法Time t4=t1-t2;cout << "t1-t2=";t4.show();//读取时间t1.setTime(15,30,0);cout << "Set t1 to ";t1.show();return 0;
}
3、不会