📄 112.cpp
字号:
#include<iostream.h>
#include<string.h>
//#include<stdlib.h>
class complex
{
private:
double x;
double y;
public:
complex( double xx=0.0, double yy=0.0){x=xx;y=yy;}
complex(complex &p);
double getx(){return x;}
double gety(){return y;}
complex operator + (complex c1);
// friend complex& operator + (complex & a,complex & b);
complex operator - (complex c1);
complex operator * (complex c1);
complex operator / (complex c1);
friend ostream &operator <<(ostream &os,complex &ob)
{
return os<<"("<<ob.x<<","<<ob.y<<")";
}
friend istream &operator >>(istream &in,complex &ob)
{
in>>ob.x;
in>>ob.y;
return in;
}
complex operator >> (complex c1);
complex operator = (complex c1);
void display();
};
complex::complex(complex &p)
{x=p.x;y=p.y;
}
complex complex::operator + (complex c1)
//complex& operator + (complex & a,complex & b)
{
//return complex(a.x+b.x,a.y+b.y);
return complex(x+c1.x,y+c1.y);
}
complex complex::operator - (complex c1)
{
return complex(x-c1.x,y-c1.y);
}
complex complex::operator * (complex c1)
{
return complex(x*c1.x-y*c1.y,y*c1.x+x*c1.y);
}
complex complex::operator / (complex c1)
{
return complex((x*c1.x-y*c1.y)/(c1.x*c1.x+c1.y*c1.y),(y*c1.x+x*c1.y)/(c1.x*c1.x+c1.y*c1.y));
}
complex complex::operator = (complex c1)
{
return complex(x=c1.x,y=c1.y);
}
void complex::display()
{
cout<<"("<<x<<","<<y<<")"<<endl;
}
class line:public complex
{
public:
line(complex xp1,complex xp2);
line(line &);
add();
sub();
mul();
div();
friend class complex;
private:
complex p1,p2;
double A;
double B;
double M;
double N;
double C;
double D;
double E;
double F;
double g;
};
line::line(complex xp1,complex xp2):p1(xp1),p2(xp2)
{
double a=double(p1.getx()+p2.getx());
double b=double(p1.gety()+p2.gety());
double m=double(p1.getx()-p2.getx());
double n=double(p1.gety()-p2.gety());
double c=double(p1.getx()*p2.getx()-p1.gety()*p2.gety());
double d=double(p1.getx()*p2.gety()+p1.gety()*p2.getx());
double e=double(p2.getx()*p2.getx());
double f=double(p2.gety()*p2.gety());
A=a;B=b;
M=m;N=n;
C=c;D=d;
g=e+f;
E=c/g;
F=d/g;
}
line::add()
{ cout<<"复数的加法:"<<endl;
cout<<"("<<A<<","<<B<<")"<<endl;
}
line::sub()
{cout<<"复数的减法:"<<endl;
cout<<"("<<M<<","<<N<<")"<<endl;
}
line::mul()
{ cout<<"复数的乘法:"<<endl;
cout<<"("<<C<<","<<D<<")"<<endl;
}
line:: div()
{ cout<<"复数的除法:"<<endl;
cout<<"("<<E<<","<<F<<")"<<endl;
}
template <class T>
T test(T x,T y,T z)
{
return x+y*z;
}
void main()
{ complex h(3,4),c(2,8),f(0,0),H(0,0);
cout<<"测试类的构造函数"<<endl;
line line(h,c);
line.add();
line.sub();
line.mul();
line.div();
cout<<endl;
cout<<"测试摸板函数test"<<endl;
cout<<"1:整数x,y,z"<<endl;
int x=1,y=2,z=3;
cout<<test(1,2,3)<<endl;
cout<<"2:浮点数a,b,d"<<endl;
double o=1.1,p=2.4,q=3.5;
cout<<test(o,p,q)<<endl;
cout<<"3:复数m,n,g"<<endl;
complex m(5,6),n(3,2),g(7,8);
cout<<test(m,n,g)<<endl;
cout<<"h=";h.display();
cout<<"c=";c.display();
cout<<endl;
cout<<"测试重载的+,-,*,/,=,<<,>>"<<endl;
f=h+c; f.display();
f=h-c; f.display();
f=h*c; f.display();
f=h/c; f.display();
f=h;
f.display();
cout<<"重载 输入和 输出:"<<endl;
cin>>H;
cout<<H<<endl;
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -