1.
#include <iostream>
using namespace std;
class Complex
{public:
Complex(){real=0;imag=0;}
Complex(double r,double i){real=r;imag=i;}
double get_real();
double get_imag();
void display();
private:
double real;
double imag;
};
double Complex::get_real()
{
return real;
}
double Complex::get_imag()
{
return imag;
}
void Complex::display()
{
cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
Complex operator + (Complex &c1,Complex &c2)
{
return Complex(c1.get_real()+c2.get_real(),c1.get_imag()+c2.get_imag());
}
int main()
{
Complex c1(3,4),c2(5,-10),c3;
c3=c1+c2;
cout<<"c3=";
c3.display();
return 0;
}
2.
#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;
};
void Complex::display()
{
cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
Complex Complex::operator+(Complex &c2)
{
return Complex(real+c2.real,imag+c2.imag);
}
Complex Complex::operator-(Complex &c2)
{
return Complex(real-c2.real,imag-c2.imag);
}
Complex Complex::operator*(Complex &c2)
{
return Complex(real*c2.real-imag*c2.imag,imag*c2.real+real*c2.imag);
}
Complex Complex::operator/(Complex &c2)
{
Complex c;
c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);
c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);
return c;
}
int main()
{
Complex c1(3,4),c2(5,-10),c3,c4,c5,c6;
c3=c1+c2;
cout<<"c3=";
c3.display();
c4=c1-c2;
cout<<"c4=";
c4.display();
c5=c1*c2;
cout<<"c5=";
c5.display();
c6=c1/c2;
cout<<"c6=";
c6.display();
return 0;
}
3.
#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+(int &i);
friend Complex operator+(int &,Complex &);
void display();
private:
double real;
double imag;
};
void Complex::display()
{
cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
Complex Complex::operator+(Complex &c)
{
return Complex(real+c.real,imag+c.imag);
}
Complex Complex::operator+(int &i)
{
return Complex(real+i,imag);
}
Complex operator+(int &i,Complex &c)
{
return Complex(i+c.real,c.imag);
}
int main()
{
Complex c1(3,4),c2(5,-10),c3,c4,c5;
int i=4;
c3=c1+c2;
cout<<"c3=";
c3.display();
c4=i+c1;
cout<<"c4=";
c4.display();
c5=c1+i;
cout<<"c5=";
c5.display();
return 0;
}
4.
#include <iostream>
using namespace std;
class Juzhen
{public:
Juzhen();
friend Juzhen operator+(Juzhen &,Juzhen &);
void input();
void display();
private:
int juzhen[2][3];
};
Juzhen::Juzhen()
{
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
juzhen[i][j]=0;
}
Juzhen operator+(Juzhen &a,Juzhen &b)
{
Juzhen c;
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
{
c.juzhen[i][j]=a.juzhen[i][j]+b.juzhen[i][j];
}
return c;
}
void Juzhen::input()
{
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
cin>>juzhen[i][j];
}
void Juzhen::display()
{
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
cout<<juzhen[i][j]<<" ";
}
cout<<endl;
}
}
int main()
{
Juzhen a,b,c;
a.input();
a.display();
cout<<"*************"<<endl;
b.input();
b.display();
cout<<"*************"<<endl;
c=a+b;
c.display();
return 0;
}
5.
#include <iostream>
using namespace std;
class Juzhen
{public:
Juzhen();
friend Juzhen operator+(Juzhen &,Juzhen &);
friend ostream& operator<<(ostream&,Juzhen&);
friend istream& operator>>(istream&,Juzhen&);
private:
int juzhen[2][3];
};
Juzhen::Juzhen()
{
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
juzhen[i][j]=0;
}
Juzhen operator+(Juzhen &a,Juzhen &b)
{
Juzhen c;
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
{
c.juzhen[i][j]=a.juzhen[i][j]+b.juzhen[i][j];
}
return c;
}
istream& operator>>(istream &input,Juzhen &J)
{
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
input>>J.juzhen[i][j];
}
}
return input;
}
ostream& operator<<(ostream &output,Juzhen &J)
{
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
output<<J.juzhen[i][j]<<" ";
}
output<<endl;
}
return output;
}
int main()
{
Juzhen a,b,c;
cin>>a;
cout<<a<<endl;
cout<<"*************"<<endl;
cin>>b;
cout<<b<<endl;
cout<<"*************"<<endl;
c=a+b;
cout<<c<<endl;
return 0;
}
6.
#include <iostream>
using namespace std;
class Complex
{public:
Complex(){real=0;imag=0;}
Complex(double r,double i){real=r;imag=i;}
Complex(double r){real=r;imag=4;}
operator double(){return real;}
void display();
private:
double real;
double imag;
};
void Complex::display()
{
cout<<"("<<real<<", "<<imag<<")"<<endl;
}
int main()
{
Complex c1(3,4);
double dl;
dl=2.5+c1;
cout<<dl<<endl;
Complex c2;
c2=2.5+c1;
c2.display();
return 0;
}
7.
#include <iostream>
using namespace std;
class Student
{public:
Student(int,char[],char);
int get_num(){return num;}
char * get_name(){return name;}
char get_sex(){return sex;}
void display()
{
cout<<num<<" "<<name<<" "<<sex<<endl;
}
private:
int num;
char name[20];
char sex;
};
Student::Student(int n,char nam[],char s)
{
num=n;
strcpy(name,nam);
sex=s;
}
class Teacher
{public:
Teacher(){}
Teacher(Student&);
Teacher(int n,char nam[],char sex);
void display();
private:
int num;
char name[20];
char sex;
};
Teacher::Teacher(int n,char nam[],char s)
{
num=n;
strcpy(name,nam);
sex=s;
}
Teacher::Teacher(Student& stud)
{
num=stud.get_num();
strcpy(name,stud.get_name());
sex=stud.get_sex();
}
void Teacher::display()
{
cout<<num<<" "<<name<<" "<<sex<<endl;
}
int main()
{
Teacher teacher1(101,"Li",'f'),teacher2;
Student student1(201,"Wang",'m');
cout<<"student1:"<<endl;
student1.display();
cout<<endl;
teacher2=Teacher(student1);
cout<<"teacher1:"<<endl;
teacher1.display();
cout<<endl;
cout<<"teacher2:"<<endl;
teacher2.display();
return 0;
}