• C++day4


    1.算术运算符重载

    1. #include
    2. using namespace std;
    3. //算术运算符
    4. class Person
    5. {
    6. friend const Person operator+(const Person &L,const Person &R);
    7. friend const Person operator-(const Person &L,const Person &R);
    8. friend const Person operator*(const Person &L,const Person &R);
    9. friend const Person operator/(const Person &L,const Person &R);
    10. friend const Person operator%(const Person &L,const Person &R);
    11. private:
    12. int a;
    13. int b;
    14. public:
    15. Person() {}
    16. Person(int a,int b):a(a),b(b)
    17. {}
    18. void show();
    19. //成员函数实现+运算符重载
    20. // const Person operator+(const Person &p) const
    21. // {
    22. // Person temp;
    23. // temp.a=a+p.a;
    24. // temp.b=b+p.b;
    25. // return temp ;
    26. // }
    27. //成员函数实现-运算符重载
    28. // const Person operator-(const Person &p) const
    29. // {
    30. // Person temp;
    31. // temp.a=a-p.a;
    32. // temp.b=b-p.b;
    33. // return temp ;
    34. // }
    35. //成员函数实现*运算符重载
    36. // const Person operator*(const Person &p) const
    37. // {
    38. // Person temp;
    39. // temp.a=a*p.a;
    40. // temp.b=b*p.b;
    41. // return temp ;
    42. // }
    43. //成员函数实现/运算符重载
    44. // const Person operator/(const Person &p) const
    45. // {
    46. // Person temp;
    47. // temp.a=a/p.a;
    48. // temp.b=b/p.b;
    49. // return temp ;
    50. // }
    51. //成员函数实现%运算符重载
    52. // const Person operator%(const Person &p) const
    53. // {
    54. // Person temp;
    55. // temp.a=a%p.a;
    56. // temp.b=b%p.b;
    57. // return temp ;
    58. // }
    59. };
    60. //全局函数实现+运算符重载
    61. const Person operator+(const Person &L,const Person &R)
    62. {
    63. Person temp;
    64. temp.a=L.a+R.a;
    65. temp.b=L.b+R.b;
    66. return temp ;
    67. }
    68. //全局函数实现-运算符重载
    69. const Person operator-(const Person &L,const Person &R)
    70. {
    71. Person temp;
    72. temp.a=L.a-R.a;
    73. temp.b=L.b-R.b;
    74. return temp ;
    75. }
    76. //全局函数实现*运算符重载
    77. const Person operator*(const Person &L,const Person &R)
    78. {
    79. Person temp;
    80. temp.a=L.a*R.a;
    81. temp.b=L.b*R.b;
    82. return temp ;
    83. }
    84. //全局函数实现/运算符重载
    85. const Person operator/(const Person &L,const Person &R)
    86. {
    87. Person temp;
    88. temp.a=L.a/R.a;
    89. temp.b=L.b/R.b;
    90. return temp ;
    91. }
    92. //全局函数实现%运算符重载
    93. const Person operator%(const Person &L,const Person &R)
    94. {
    95. Person temp;
    96. temp.a=L.a%R.a;
    97. temp.b=L.b%R.b;
    98. return temp ;
    99. }
    100. void Person::show()
    101. {
    102. cout << "a= " << a << " b= " << b << endl;
    103. }
    104. int main()
    105. {
    106. Person p1(10,10);
    107. Person p2(10,10);
    108. Person p3=p1+p2;
    109. p3.show();
    110. Person p4=p1-p2;
    111. p4.show();
    112. Person p5=p1*p2;
    113. p5.show();
    114. Person p6=p1/p2;
    115. p6.show();
    116. Person p7=p1%p2;
    117. p7.show();
    118. return 0;
    119. }

    2.关系运算符重载

    1. #include
    2. using namespace std;
    3. //关系运算符
    4. class Person
    5. {
    6. friend bool operator>(const Person &L,const Person &R);
    7. friend bool operator>=(const Person &L,const Person &R);
    8. friend bool operator<(const Person &L,const Person &R);
    9. friend bool operator<=(const Person &L,const Person &R);
    10. friend bool operator!=(const Person &L,const Person &R);
    11. friend bool operator==(const Person &L,const Person &R);
    12. private:
    13. int a;
    14. int b;
    15. public:
    16. Person() {}
    17. Person(int a,int b):a(a),b(b)
    18. {}
    19. void show();
    20. //关系函数实现>运算符重载
    21. // bool operator>(const Person &R) const
    22. // {
    23. // if(a>R.a && b>R.b)
    24. // {
    25. // return true;
    26. // }
    27. // else
    28. // {
    29. // return false;
    30. // }
    31. // }
    32. //关系函数实现>=运算符重载
    33. // bool operator>=(const Person &R) const
    34. // {
    35. // if(a>=R.a && b>=R.b)
    36. // {
    37. // return true;
    38. // }
    39. // else
    40. // {
    41. // return false;
    42. // }
    43. // }
    44. //关系函数实现<运算符重载
    45. // bool operator<(const Person &R) const
    46. // {
    47. // if(a
    48. // {
    49. // return true;
    50. // }
    51. // else
    52. // {
    53. // return false;
    54. // }
    55. // }
    56. //关系函数实现<=运算符重载
    57. // bool operator<=(const Person &R) const
    58. // {
    59. // if(a<=R.a && b<=R.b)
    60. // {
    61. // return true;
    62. // }
    63. // else
    64. // {
    65. // return false;
    66. // }
    67. // }
    68. //关系函数实现!=运算符重载
    69. // bool operator!=(const Person &R) const
    70. // {
    71. // if(a!=R.a && b!=R.b)
    72. // {
    73. // return true;
    74. // }
    75. // else
    76. // {
    77. // return false;
    78. // }
    79. // }
    80. //关系函数实现==运算符重载
    81. // bool operator==(const Person &R) const
    82. // {
    83. // if(a==R.a && b==R.b)
    84. // {
    85. // return true;
    86. // }
    87. // else
    88. // {
    89. // return false;
    90. // }
    91. // }
    92. };
    93. //全局函数实现>运算符重载
    94. bool operator>(const Person &L,const Person &R)
    95. {
    96. if(L.a>R.a && L.b>R.b)
    97. {
    98. return true;
    99. }
    100. else
    101. {
    102. return false;
    103. }
    104. }
    105. //全局函数实现>=运算符重载
    106. bool operator>=(const Person &L,const Person &R)
    107. {
    108. if(L.a>=R.a && L.b>=R.b)
    109. {
    110. return true;
    111. }
    112. else
    113. {
    114. return false;
    115. }
    116. }
    117. //全局函数实现<运算符重载
    118. bool operator<(const Person &L,const Person &R)
    119. {
    120. if(L.a
    121. {
    122. return true;
    123. }
    124. else
    125. {
    126. return false;
    127. }
    128. }
    129. //全局函数实现<=运算符重载
    130. bool operator<=(const Person &L,const Person &R)
    131. {
    132. if(L.a<=R.a && L.b<=R.b)
    133. {
    134. return true;
    135. }
    136. else
    137. {
    138. return false;
    139. }
    140. }
    141. //全局函数实现!=运算符重载
    142. bool operator!=(const Person &L,const Person &R)
    143. {
    144. if(L.a!=R.a && L.b!=R.b)
    145. {
    146. return true;
    147. }
    148. else
    149. {
    150. return false;
    151. }
    152. }
    153. //全局函数实现==运算符重载
    154. bool operator==(const Person &L,const Person &R)
    155. {
    156. if(L.a==R.a && L.b==R.b)
    157. {
    158. return true;
    159. }
    160. else
    161. {
    162. return false;
    163. }
    164. }
    165. int main()
    166. {
    167. Person p1(20,20);
    168. Person p2(10,10);
    169. if(p1>p2)
    170. {
    171. cout << "p1>p2" << endl;
    172. }
    173. if(p1>=p2)
    174. {
    175. cout << "p1>=p2" << endl;
    176. }
    177. if(p2
    178. {
    179. cout << "p2 << endl;
    180. }
    181. if(p2<=p1)
    182. {
    183. cout << "p2<=p1" << endl;
    184. }
    185. if(p2!=p1)
    186. {
    187. cout << "p2!=p1" << endl;
    188. }
    189. Person p3(100,100);
    190. Person p4(100,100);
    191. if(p3==p4)
    192. {
    193. cout << "p3==p4" << endl;
    194. }
    195. return 0;
    196. }

    3.赋值运算符重载

    1. #include
    2. using namespace std;
    3. //赋值运算符
    4. class Person
    5. {
    6. friend Person& operator+=(Person &L,const Person &R);
    7. friend Person& operator-=(Person &L,const Person &R);
    8. friend Person& operator*=(Person &L,const Person &R);
    9. friend Person& operator/=(Person &L,const Person &R);
    10. friend Person& operator%=(Person &L,const Person &R);
    11. private:
    12. int a;
    13. int b;
    14. public:
    15. Person() {}
    16. Person(int a,int b):a(a),b(b)
    17. {}
    18. void show();
    19. //赋值函数实现+=运算符重载
    20. // Person& operator+=(const Person &R)
    21. // {
    22. // a+=R.a;
    23. // b+=R.b;
    24. // return *this;
    25. // }
    26. // void show()
    27. // {
    28. // cout << "a= " << a << " b= " << b << endl;
    29. // }
    30. //赋值函数实现-=运算符重载
    31. // Person& operator-=(const Person &R)
    32. // {
    33. // a-=R.a;
    34. // b-=R.b;
    35. // return *this;
    36. // }
    37. //赋值函数实*=运算符重载
    38. // Person& operator*=(const Person &R)
    39. // {
    40. // a*=R.a;
    41. // b*=R.b;
    42. // return *this;
    43. // }
    44. //赋值函数实/=运算符重载
    45. // Person& operator/=(const Person &R)
    46. // {
    47. // a/=R.a;
    48. // b/=R.b;
    49. // return *this;
    50. // }
    51. //赋值函数实%=运算符重载
    52. // Person& operator%=(const Person &R)
    53. // {
    54. // a%=R.a;
    55. // b%=R.b;
    56. // return *this;
    57. // }
    58. //赋值函数实=运算符重载
    59. Person& operator=(const Person &R)
    60. {
    61. a=R.a;
    62. b=R.b;
    63. return *this;
    64. }
    65. };
    66. //全局函数实现+=运算符重载
    67. Person& operator+=(Person &L,const Person &R)
    68. {
    69. L.a+=R.a;
    70. L.b+=R.b;
    71. return L;
    72. }
    73. //全局函数实现-=运算符重载
    74. Person& operator-=(Person &L,const Person &R)
    75. {
    76. L.a-=R.a;
    77. L.b-=R.b;
    78. return L;
    79. }
    80. //全局函数实现*=运算符重载
    81. Person& operator*=(Person &L,const Person &R)
    82. {
    83. L.a*=R.a;
    84. L.b*=R.b;
    85. return L;
    86. }
    87. //全局函数实现/=运算符重载
    88. Person& operator/=(Person &L,const Person &R)
    89. {
    90. L.a/=R.a;
    91. L.b/=R.b;
    92. return L;
    93. }
    94. //全局函数实现%=运算符重载
    95. Person& operator%=(Person &L,const Person &R)
    96. {
    97. L.a%=R.a;
    98. L.b%=R.b;
    99. return L;
    100. }
    101. void Person::show()
    102. {
    103. cout << "a= " << a << " b= " << b << endl;
    104. }
    105. int main()
    106. {
    107. Person p1(0,0);
    108. Person p2(1,1);
    109. p1+=p2;
    110. p1.show();
    111. Person p3(2,2);
    112. Person p4(0,0);
    113. p3-=p4;
    114. p3.show();
    115. Person p5(3,3);
    116. Person p6(1,1);
    117. p5*=p6;
    118. p5.show();
    119. Person p7(4,4);
    120. Person p8(1,1);
    121. p7/=p8;
    122. p7.show();
    123. Person p9(5,5);
    124. Person p10(1,1);
    125. p9/=p10;
    126. p9.show();
    127. Person p11(6,6);
    128. Person p12(7,7);
    129. p11%=p12;
    130. p11.show();
    131. p11=p12;
    132. p11.show();
    133. return 0;
    134. }

    思维导图: 

  • 相关阅读:
    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