update
This commit is contained in:
67
practical_exercises/10_day_practice/day7/二元运算符/1.类运算符重载.cpp
Normal file
67
practical_exercises/10_day_practice/day7/二元运算符/1.类运算符重载.cpp
Normal file
@@ -0,0 +1,67 @@
|
||||
//<2F>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD>Complex<65><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ļӡ<C4BC><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><CBA1><EFBFBD><EFBFBD>ȸ<EFBFBD><C8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㡣
|
||||
#include<iostream>
|
||||
using namespace std;
|
||||
class Complex {
|
||||
private:
|
||||
double r,i;
|
||||
public:
|
||||
Complex(double R=0,double I=0):r(R),i(I){};
|
||||
Complex operator+(Complex b);
|
||||
Complex operator-(Complex b);
|
||||
Complex operator*(Complex b);
|
||||
Complex operator/(Complex b);
|
||||
void display();
|
||||
};
|
||||
|
||||
Complex Complex::operator +(Complex b)
|
||||
{
|
||||
return Complex(r+b.r,i+b.i);
|
||||
}
|
||||
Complex Complex::operator -(Complex b)
|
||||
{
|
||||
return Complex(r-b.r,i-b.i);
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>㷨
|
||||
Complex Complex::operator *(Complex b)
|
||||
{
|
||||
Complex t;
|
||||
t.r=r*b.r-i*b.i;
|
||||
t.i=r*b.i+i*b.r;
|
||||
return t;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷨
|
||||
Complex Complex::operator /(Complex b) {
|
||||
Complex t;
|
||||
double x;
|
||||
x=1/(b.r*b.r+b.i*b.i);
|
||||
t.r=x*(r*b.r+i*b.i);
|
||||
t.i=x*(i*b.r-r*b.i);
|
||||
return t;
|
||||
}
|
||||
void Complex::display(){
|
||||
cout<<r;
|
||||
if (i>0) cout<<"+";
|
||||
if (i!=0) cout<<i<<"i"<<endl;
|
||||
//}display();
|
||||
};
|
||||
|
||||
int main(void) {
|
||||
Complex c1(1,2),c2(3,4),c3,c4,c5,c6;
|
||||
Complex a,b(2,3);
|
||||
a=b+2; //<2F><>ȷ
|
||||
// a=2+b; //<2F><><EFBFBD><EFBFBD>
|
||||
a.display();
|
||||
c3=c1+c2;
|
||||
c4=c1-c2;
|
||||
c5=c1*c2;
|
||||
c6=c1/c2;
|
||||
c1.display();
|
||||
c2.display();
|
||||
c3.display();
|
||||
c4.display();
|
||||
c5.display();
|
||||
c6.display();
|
||||
system("pause");
|
||||
return 0;
|
||||
}
|
||||
|
||||
84
practical_exercises/10_day_practice/day7/二元运算符/2.友元运算符实现.cpp
Normal file
84
practical_exercises/10_day_practice/day7/二元运算符/2.友元运算符实现.cpp
Normal file
@@ -0,0 +1,84 @@
|
||||
|
||||
/*
|
||||
<EFBFBD><EFBFBD>C++<2B>ı<EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>std<74><64>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD><EFBFBD>Complex<65><78>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Complex<EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>+<2B><>-<2D><>*<2A><>/<2F><>
|
||||
<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>using namespace std<74><64>std<74><64><EFBFBD>ֿռ<D6BF><D5BC><EFBFBD><EFBFBD>뱾<EFBFBD><EBB1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>Complex<EFBFBD><EFBFBD><EFBFBD><EFBFBD>std<EFBFBD><EFBFBD><EFBFBD>ֿռ<EFBFBD><EFBFBD>е<EFBFBD>Complex<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
/*
|
||||
<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ҿ<EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<2B><>-<2D><>*<2A><>/ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷dz<EFBFBD>Ա<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>֡<EFBFBD>
|
||||
*/
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>2+b<><62><EFBFBD>⡣
|
||||
#include<iostream>
|
||||
|
||||
|
||||
class Complex{
|
||||
private:
|
||||
double r,i;
|
||||
public:
|
||||
Complex(double R=0,double I=0):r(R),i(I){};
|
||||
friend Complex operator+(Complex a, Complex b);
|
||||
friend Complex operator-(Complex a, Complex b);
|
||||
friend Complex operator*(Complex a, Complex b);
|
||||
friend Complex operator/(Complex a, Complex b);
|
||||
|
||||
friend Complex operator+(Complex a,double b){
|
||||
return Complex(a.r+b,a.i);
|
||||
}
|
||||
friend Complex operator+(double a,Complex b){
|
||||
return Complex(a+b.r,b.i);
|
||||
}
|
||||
|
||||
void display();
|
||||
};
|
||||
|
||||
Complex operator+(Complex a, Complex b){
|
||||
return Complex(a.r+b.r,a.i+b.i);
|
||||
}
|
||||
Complex operator-(Complex a, Complex b){
|
||||
return Complex(a.r-b.r,a.i-b.i);
|
||||
}
|
||||
Complex operator*(Complex a, Complex b){
|
||||
Complex t;
|
||||
t.r = a.r*b.r-a.i*b.i;
|
||||
t.i = a.r*b.i+a.i*b.r;
|
||||
}
|
||||
Complex operator/(Complex a, Complex b){
|
||||
Complex t;
|
||||
double x;
|
||||
x = 1/(b.r*b.r+b.i*b.i);
|
||||
t.r = x*(a.r*b.r+a.i*b.i);
|
||||
t.i = x*(a.i*b.r-a.r*b.i);
|
||||
return t;
|
||||
}
|
||||
|
||||
void Complex::display(){
|
||||
std::cout<<r;
|
||||
if(i>0)
|
||||
std::cout<<"+";
|
||||
if(i!=0)
|
||||
std::cout<<i<<"i"<<std::endl;
|
||||
}
|
||||
int main(void) {
|
||||
Complex c1(1,2),c2(3,4),c3,c4,c5,c6;
|
||||
Complex a,b(2,3);
|
||||
Complex a1=b+2;
|
||||
Complex a2=2+b;
|
||||
a1.display();
|
||||
a2.display();
|
||||
c3=c1+c2;
|
||||
c4=c1-c2;
|
||||
c5=c1*c2;
|
||||
c6=c1/c2;
|
||||
c1.display();
|
||||
c2.display();
|
||||
c3.display();
|
||||
c4.display();
|
||||
c5.display();
|
||||
c6.display();
|
||||
system("pause");
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user