Task8-1/*1. 定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。
将运算符函数重载为非成员、非友元的普通函数。
编写程序,求两个复数之和*/#include<iostream>using namespace std;class Complex{public:Complex(){real=0;imag=0;}Complex(double r,double i){real=r;imag=i;}void display();double real;double imag;};void Complex::display(){cout<<"("<<real<<","<<imag<<"i)";}Complex operator +(Complex &c1,Complex &c2){Complex p;=+;=+;return p;}int main(){Complex c1(3,5),c2(2,5),c3;();cout<<"+";();cout<<"=";c3=c1+c2;();}Task8-2/*2. 定义一个复数类Complex,重载运算符“+”、”-“、”*”、”/”,使之能用于复数的加、减、乘、除。
运算符重载函数作为Complex类的成员函数,编程,分别求两个复数之和差积商。
*/#include<iostream>using namespace std;class Complex{public:Complex(){real=0;imag=0;}Complex(double r,double i){real=r;imag=i;}Complex operator+(Complex &c2);Complex operator-(Complex &c2);Complex operator*(Complex &c2);Complex operator/(Complex &c2);void display();private:double real;double imag;};Complex Complex::operator +(Complex &c2){Complex c;=real+;=imag+;return c;}Complex Complex::operator -(Complex &c2){Complex c;=;=;return c;}Complex Complex::operator *(Complex &c2){Complex c;=real*;=imag*;return c;}Complex Complex::operator /(Complex &c2){Complex c;=(real*+imag*/*+*;=(imag**/*+*;return c;}void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;}int main(){Complex c1(3,4),c2(5,-10),c3;c3=c1+c2;cout<<"c1+c2=";();c3=c1-c2;cout<<"c1-c2=";();c3=c1*c2;cout<<"c1*c2=";();c3=c1/c2;cout<<"c1/c2=";();return 0;}Task8-3/*3. 有两个矩阵a和b,均为n行m列(m、n的值自己给出),求两个矩阵之和、差、积、商,重载运算符“+”、”-“、”*”、”/”,使之能用于矩阵向加减乘除,如c=a+b、 c=a*b。
*/#include <iostream>#define n 2#define m 3using namespace std;class Matrix 在第三题的基础上,重载运算符>>和<<, 使之能用于该矩阵的输入和输出。
*/#include <iostream>#define n 2#define m 3using namespace std;class Matrix 实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、求反、比较(6种关系)的运算。
*/#include<iostream>#include<>using namespace std;int gcd(int m,int n);class Fraction{private:int nume; // 分子int deno; // 分母public:Fraction(int nu=0,int de=1); //构造函数,初始化用 void Set(int nu=0,int de=1); //置值,改变值时用 Fraction operator+(Fraction &c2);Fraction operator-(Fraction &c2);Fraction operator*(Fraction &c2);Fraction operator/(Fraction &c2);bool operator>=(Fraction &c2);Fraction operator-();void display();void Simplify(); //化简(使分子分母没有公因子)};Fraction::Fraction(int nu,int de){if(de!=0){nume=nu;deno=de;}else{cout<<"格式错误,程序退出\n";exit(0);}}void Fraction:: Set(int nu,int de){if(de!=0){nume=nu;deno=de;}}void Fraction::display(){cout<<nume<<'/'<<deno<<endl;}//求分子,分母最大公约数int gcd(int m,int n){int r;if(m<n){r=m;m=n;n=r;}while(r=m%n){if(r==0)break;m=n;n=r;}return n;}//将分数化简void Fraction::Simplify(){int n=gcd(nume,deno);nume=nume/n;deno=deno/n;cout<<nume<<'/'<<deno;}Fraction Fraction::operator+(Fraction &c2) {Fraction c;=deno*;=nume*+*deno;return c;}Fraction Fraction::operator-(Fraction &c2) {Fraction c;=deno*;=nume* return c;}Fraction Fraction::operator*(Fraction &c2){Fraction c;=deno*;=nume*;return c;}Fraction Fraction::operator/(Fraction &c2) {Fraction c;=deno*;=nume*;return c;}bool Fraction::operator>=(Fraction &c2){nume=nume*;=*deno;if(nume>=return true;elsereturn false;}Fraction Fraction::operator-(){Fraction c;=-nume;=deno;return c;}int main(){Fraction c1(1,2),c2(5,8),c;cout<<"c1=";();cout<<"c2=";();c=c1+c2;cout<<"c1+c2=";();cout<<endl;c=c1-c2;cout<<"c1-c2=";();cout<<endl;c=c1*c2;cout<<"c1*c2=";();cout<<endl;c=c1/c2;cout<<"c1/c2=";();cout<<endl;c=-c1;cout<<"-c1=";();cout<<endl;if(c1>=c2) cout<<"c1>=c2"<<endl; system("pause");}。