- #include
-
- using namespace std;
-
- //算术运算符
-
- class Person
- {
- friend const Person operator+(const Person &L,const Person &R);
- friend const Person operator-(const Person &L,const Person &R);
- friend const Person operator*(const Person &L,const Person &R);
- friend const Person operator/(const Person &L,const Person &R);
- friend const Person operator%(const Person &L,const Person &R);
-
- private:
- int a;
- int b;
-
- public:
- Person() {}
- Person(int a,int b):a(a),b(b)
- {}
-
- void show();
-
- //成员函数实现+运算符重载
- // const Person operator+(const Person &p) const
- // {
- // Person temp;
- // temp.a=a+p.a;
- // temp.b=b+p.b;
- // return temp ;
- // }
-
- //成员函数实现-运算符重载
- // const Person operator-(const Person &p) const
- // {
- // Person temp;
- // temp.a=a-p.a;
- // temp.b=b-p.b;
- // return temp ;
- // }
-
- //成员函数实现*运算符重载
- // const Person operator*(const Person &p) const
- // {
- // Person temp;
- // temp.a=a*p.a;
- // temp.b=b*p.b;
- // return temp ;
- // }
-
- //成员函数实现/运算符重载
- // const Person operator/(const Person &p) const
- // {
- // Person temp;
- // temp.a=a/p.a;
- // temp.b=b/p.b;
- // return temp ;
- // }
-
- //成员函数实现%运算符重载
- // const Person operator%(const Person &p) const
- // {
- // Person temp;
- // temp.a=a%p.a;
- // temp.b=b%p.b;
- // return temp ;
- // }
-
- };
-
- //全局函数实现+运算符重载
- const Person operator+(const Person &L,const Person &R)
- {
- Person temp;
- temp.a=L.a+R.a;
- temp.b=L.b+R.b;
- return temp ;
- }
-
- //全局函数实现-运算符重载
- const Person operator-(const Person &L,const Person &R)
- {
- Person temp;
- temp.a=L.a-R.a;
- temp.b=L.b-R.b;
- return temp ;
- }
-
- //全局函数实现*运算符重载
- const Person operator*(const Person &L,const Person &R)
- {
- Person temp;
- temp.a=L.a*R.a;
- temp.b=L.b*R.b;
- return temp ;
- }
-
- //全局函数实现/运算符重载
- const Person operator/(const Person &L,const Person &R)
- {
- Person temp;
- temp.a=L.a/R.a;
- temp.b=L.b/R.b;
- return temp ;
- }
-
- //全局函数实现%运算符重载
- const Person operator%(const Person &L,const Person &R)
- {
- Person temp;
- temp.a=L.a%R.a;
- temp.b=L.b%R.b;
- return temp ;
- }
-
- void Person::show()
- {
- cout << "a= " << a << " b= " << b << endl;
- }
-
- int main()
- {
- Person p1(10,10);
- Person p2(10,10);
- Person p3=p1+p2;
- p3.show();
-
- Person p4=p1-p2;
- p4.show();
-
- Person p5=p1*p2;
- p5.show();
-
- Person p6=p1/p2;
- p6.show();
-
- Person p7=p1%p2;
- p7.show();
-
- return 0;
- }
- #include
-
- using namespace std;
-
- //关系运算符
-
- class Person
- {
- friend bool operator>(const Person &L,const Person &R);
- friend bool operator>=(const Person &L,const Person &R);
- friend bool operator<(const Person &L,const Person &R);
- friend bool operator<=(const Person &L,const Person &R);
- friend bool operator!=(const Person &L,const Person &R);
- friend bool operator==(const Person &L,const Person &R);
-
- private:
- int a;
- int b;
-
- public:
- Person() {}
- Person(int a,int b):a(a),b(b)
- {}
-
- void show();
-
- //关系函数实现>运算符重载
- // bool operator>(const Person &R) const
- // {
- // if(a>R.a && b>R.b)
- // {
- // return true;
- // }
- // else
- // {
- // return false;
- // }
- // }
-
- //关系函数实现>=运算符重载
- // bool operator>=(const Person &R) const
- // {
- // if(a>=R.a && b>=R.b)
- // {
- // return true;
- // }
- // else
- // {
- // return false;
- // }
- // }
-
- //关系函数实现<运算符重载
- // bool operator<(const Person &R) const
- // {
- // if(a
- // {
- // return true;
- // }
- // else
- // {
- // return false;
- // }
- // }
-
- //关系函数实现<=运算符重载
- // bool operator<=(const Person &R) const
- // {
- // if(a<=R.a && b<=R.b)
- // {
- // return true;
- // }
- // else
- // {
- // return false;
- // }
- // }
-
- //关系函数实现!=运算符重载
- // bool operator!=(const Person &R) const
- // {
- // if(a!=R.a && b!=R.b)
- // {
- // return true;
- // }
- // else
- // {
- // return false;
- // }
- // }
-
- //关系函数实现==运算符重载
- // bool operator==(const Person &R) const
- // {
- // if(a==R.a && b==R.b)
- // {
- // return true;
- // }
- // else
- // {
- // return false;
- // }
- // }
-
-
- };
-
- //全局函数实现>运算符重载
- bool operator>(const Person &L,const Person &R)
- {
- if(L.a>R.a && L.b>R.b)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-
- //全局函数实现>=运算符重载
- bool operator>=(const Person &L,const Person &R)
- {
- if(L.a>=R.a && L.b>=R.b)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-
- //全局函数实现<运算符重载
- bool operator<(const Person &L,const Person &R)
- {
- if(L.a
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-
- //全局函数实现<=运算符重载
- bool operator<=(const Person &L,const Person &R)
- {
- if(L.a<=R.a && L.b<=R.b)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-
- //全局函数实现!=运算符重载
- bool operator!=(const Person &L,const Person &R)
- {
- if(L.a!=R.a && L.b!=R.b)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-
- //全局函数实现==运算符重载
- bool operator==(const Person &L,const Person &R)
- {
- if(L.a==R.a && L.b==R.b)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
-
- int main()
- {
- Person p1(20,20);
- Person p2(10,10);
- if(p1>p2)
- {
- cout << "p1>p2" << endl;
- }
-
- if(p1>=p2)
- {
- cout << "p1>=p2" << endl;
- }
-
- if(p2
- {
- cout << "p2
<< endl; - }
-
- if(p2<=p1)
- {
- cout << "p2<=p1" << endl;
- }
-
- if(p2!=p1)
- {
- cout << "p2!=p1" << endl;
- }
-
- Person p3(100,100);
- Person p4(100,100);
- if(p3==p4)
- {
- cout << "p3==p4" << endl;
- }
-
- return 0;
- }
3.赋值运算符重载
- #include
-
- using namespace std;
-
- //赋值运算符
-
- class Person
- {
- friend Person& operator+=(Person &L,const Person &R);
- friend Person& operator-=(Person &L,const Person &R);
- friend Person& operator*=(Person &L,const Person &R);
- friend Person& operator/=(Person &L,const Person &R);
- friend Person& operator%=(Person &L,const Person &R);
-
- private:
- int a;
- int b;
-
- public:
- Person() {}
- Person(int a,int b):a(a),b(b)
- {}
-
- void show();
-
-
-
- //赋值函数实现+=运算符重载
- // Person& operator+=(const Person &R)
- // {
- // a+=R.a;
- // b+=R.b;
- // return *this;
- // }
-
- // void show()
- // {
- // cout << "a= " << a << " b= " << b << endl;
- // }
-
-
- //赋值函数实现-=运算符重载
- // Person& operator-=(const Person &R)
- // {
- // a-=R.a;
- // b-=R.b;
- // return *this;
- // }
-
- //赋值函数实*=运算符重载
- // Person& operator*=(const Person &R)
- // {
- // a*=R.a;
- // b*=R.b;
- // return *this;
- // }
-
- //赋值函数实/=运算符重载
- // Person& operator/=(const Person &R)
- // {
- // a/=R.a;
- // b/=R.b;
- // return *this;
- // }
-
- //赋值函数实%=运算符重载
- // Person& operator%=(const Person &R)
- // {
- // a%=R.a;
- // b%=R.b;
- // return *this;
- // }
-
- //赋值函数实=运算符重载
- Person& operator=(const Person &R)
- {
- a=R.a;
- b=R.b;
- return *this;
- }
-
- };
-
- //全局函数实现+=运算符重载
- Person& operator+=(Person &L,const Person &R)
- {
- L.a+=R.a;
- L.b+=R.b;
- return L;
- }
-
- //全局函数实现-=运算符重载
- Person& operator-=(Person &L,const Person &R)
- {
- L.a-=R.a;
- L.b-=R.b;
- return L;
- }
-
- //全局函数实现*=运算符重载
- Person& operator*=(Person &L,const Person &R)
- {
- L.a*=R.a;
- L.b*=R.b;
- return L;
- }
-
- //全局函数实现/=运算符重载
- Person& operator/=(Person &L,const Person &R)
- {
- L.a/=R.a;
- L.b/=R.b;
- return L;
- }
-
- //全局函数实现%=运算符重载
- Person& operator%=(Person &L,const Person &R)
- {
- L.a%=R.a;
- L.b%=R.b;
- return L;
- }
-
-
-
- void Person::show()
- {
- cout << "a= " << a << " b= " << b << endl;
- }
-
- int main()
- {
- Person p1(0,0);
- Person p2(1,1);
- p1+=p2;
- p1.show();
-
- Person p3(2,2);
- Person p4(0,0);
- p3-=p4;
- p3.show();
-
- Person p5(3,3);
- Person p6(1,1);
- p5*=p6;
- p5.show();
-
- Person p7(4,4);
- Person p8(1,1);
- p7/=p8;
- p7.show();
-
- Person p9(5,5);
- Person p10(1,1);
- p9/=p10;
- p9.show();
-
- Person p11(6,6);
- Person p12(7,7);
- p11%=p12;
- p11.show();
-
- p11=p12;
- p11.show();
-
- return 0;
- }
思维导图:

-
相关阅读:
Spring注解@Qualifier的详细用法你知道几种「扩展点实战系列」- 第444篇
华为数通方向HCIP-DataCom H12-831题库(单选题:201-220)
tkinter显示图片
【JVM】JVM与Java体系结构
【3】Docker镜像相关命令
视频编码基础知识
阿赵UE引擎C++编程学习笔记——用户输入监听
熟悉HotSpot中的对象
双指针的问题解法以及常见的leetcode例题。
python的for循环语句的用法及实例
-
原文地址:https://blog.csdn.net/2301_79218296/article/details/133755563