運(yùn)算符重載
1.定義:

例:建一個復(fù)數(shù)類,重載+, -
https://blog.csdn.net/qq_40242197/article/details/118584131
法一:將運(yùn)算符重載作為類函數(shù)


#include<iostream>
#include<cmath>
using namespace std;
class complex {
public:
complex(double r = 0.0,double i=0.0) {
real = r;
imag = i;
}
complex operator +(const complex &c2);
complex operator -(const complex &c2);
void show(){
cout<<"real:"<<real<<" "<<"imag:"<<imag<<endl;
}
double getr() const{//const成員只能調(diào)用const函數(shù)
return real;
}
double geti() const{
return imag;
}
private:
double real;
double imag;
};
complex complex::operator+(const complex &b){
complex d(real+b.getr(),imag+b.geti());
return d;
}
complex complex::operator-(const complex &b){
complex d(real-b.getr(),imag-b.geti());//注意順序不能顛倒?
return d;
}?
int main(){
complex a(1,2),b(3,6),c;
c = a+b;
c.show();
c = a-b;
c.show();
return 0;
}
2.規(guī)則

法二:將運(yùn)算符重載為友元函數(shù)

#include<iostream>
#include<cmath>
using namespace std;
class complex {
public:
complex(double r = 0.0,double i=0.0) {
real = r;
imag = i;
}
void show() {
cout<<"real:"<<real<<" "<<"imag:"<<imag<<endl;
}
private:
double real;
double imag;
friend complex operator +(const complex &c1,const complex &c2);
friend complex operator -(const complex &c1,const complex &c2);
};
complex operator+(const complex &a,const complex &b) {
complex d(a.real+b.real,a.imag+b.imag);
return d;
}
complex operator-(const complex &a,const complex &b) {
complex d(a.real-b.real,a.imag-b.imag);
return d;
}
int main() {
complex a(1,2),b(3,6),c;
c = a+b;
c.show();
c = a-b;
c.show();
return 0;
}