• c++day4


    1> 思维导图

    2> 整理代码

    1. #include
    2. using namespace std;
    3. class Person
    4. {
    5. friend const Person operator+(const Person &L, const Person &R);
    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 bool operator>(const Person &L, const Person &R);
    11. friend bool operator>=(const Person &L, const Person &R);
    12. friend bool operator<(const Person &L, const Person &R);
    13. friend bool operator<=(const Person &L, const Person &R);
    14. friend bool operator==(const Person &L, const Person &R);
    15. friend bool operator!=(const Person &L, const Person &R);
    16. friend Person &operator+=(Person &L,const Person &R);
    17. private:
    18. int a;
    19. int b;
    20. public:
    21. Person(){}
    22. Person(int a, int b):a(a),b(b)
    23. {}
    24. void show()
    25. {
    26. cout << " a = " << a << " b = " << b << endl;
    27. }
    28. };
    29. //全局函数实现+运算符重载
    30. const Person operator+(const Person &L, const Person &R)
    31. {
    32. Person temp;
    33. temp.a = L.a + R.a;
    34. temp.b = L.b + R.b;
    35. return temp;
    36. }
    37. //全局函数实现-运算符重载
    38. const Person operator-(const Person &L, const Person &R)
    39. {
    40. Person temp;
    41. temp.a = L.a - R.a;
    42. temp.b = L.b - R.b;
    43. return temp;
    44. }
    45. //全局函数实现*运算符重载
    46. const Person operator*(const Person &L, const Person &R)
    47. {
    48. Person temp;
    49. temp.a = L.a * R.a;
    50. temp.b = L.b * R.b;
    51. return temp;
    52. }
    53. //全局函数实现/运算符重载
    54. const Person operator/(const Person &L, const Person &R)
    55. {
    56. Person temp;
    57. temp.a = L.a / R.a;
    58. temp.b = L.b / R.b;
    59. return temp;
    60. }
    61. //全局函数实现%运算符重载
    62. const Person operator%(const Person &L, const Person &R)
    63. {
    64. Person temp;
    65. temp.a = L.a % R.a;
    66. temp.b = L.b % R.b;
    67. return temp;
    68. }
    69. //全局函数实现>号运算符重载
    70. bool operator>(const Person &L, const Person &R)
    71. {
    72. if(L.a>R.a && L.b>R.b)
    73. {
    74. return true;
    75. }
    76. else
    77. {
    78. return false;
    79. }
    80. }
    81. //全局函数实现>=号运算符重载
    82. bool operator>=(const Person &L, const Person &R)
    83. {
    84. if(L.a>=R.a && L.b>=R.b)
    85. {
    86. return true;
    87. }
    88. else
    89. {
    90. return false;
    91. }
    92. }
    93. //全局函数实现<号运算符重载
    94. bool operator<(const Person &L, const Person &R)
    95. {
    96. if(L.a
    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==R.a && L.b==R.b)
    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. Person &operator+=(Person &L,const Person &R)
    143. {
    144. L.a += R.a;
    145. L.b += R.b;
    146. return L;
    147. }
    148. int main()
    149. {
    150. Person p1(100,100);
    151. Person p2(50,50);
    152. Person p3 = p1 + p2;
    153. p3.show();
    154. Person p4 = p1 - p2;
    155. p4.show();
    156. Person p5 = p1 * p2;
    157. p5.show();
    158. Person p6 = p1 / p2;
    159. p6.show();
    160. Person p7 = p1 % p2;
    161. p7.show();
    162. if(p3>p2)
    163. {
    164. cout << "p3>p2" << endl;
    165. }
    166. if(p3>=p2)
    167. {
    168. cout << "p3>=p2" << endl;
    169. }
    170. if(p3
    171. {
    172. cout << "p3 << endl;
    173. }
    174. if(p3<=p2)
    175. {
    176. cout << "p3<=p2" << endl;
    177. }
    178. if(p3==p2)
    179. {
    180. cout << "p3==p2" << endl;
    181. }
    182. if(p3!=p2)
    183. {
    184. cout << "p3!=p2" << endl;
    185. }
    186. p3+=p2;
    187. p3.show();
    188. return 0;
    189. }

  • 相关阅读:
    Java的基本组成部分是什么?
    基于Java实现一个简单的YACC
    独立站引流新玩法
    使用数组方法打印出 1 - 10000 之间的所有对称数。例如:121、1331等
    Dubbo订阅发布的实现原理
    第2章 Spring Boot实践,开发社区登录模块(下)
    C++基础知识(十九)--- 函数对象
    使用iso镜像包制作离线本地镜像源(本地yum源)
    由于找不到vcruntime140_1.dll,无法继续执行代码重新安装程序可能会解决此问题
    物联网技术栈之网关技术
  • 原文地址:https://blog.csdn.net/m0_72133977/article/details/133754954