• 国庆day4


    运算符重载代码

    1. #include <iostream>
    2. using namespace std;
    3. class Num
    4. {
    5. private:
    6. int num1; //实部
    7. int num2; //虚部
    8. public:
    9. Num(){}; //无参构造
    10. Num(int n1,int n2):num1(n1),num2(n2){}; //有参构造
    11. ~Num(){}; //析构函数
    12. const Num operator+(const Num &other)const //加号重载
    13. {
    14. Num a; //定义临时类对象
    15. a.num1 = num1 + other.num1; //实部相加
    16. a.num2 = num2 + other.num2; //虚部相加
    17. return a;
    18. }
    19. bool operator==(const Num &other)const //相等重载
    20. {
    21. //判断实部虚部是否分别相等
    22. if(num1 == other.num1 && num2 == other.num2)
    23. {
    24. return true;
    25. }
    26. else
    27. {
    28. return false;
    29. }
    30. }
    31. Num &operator+=(const Num &other) //加等重载
    32. {
    33. //实部虚部分别加等于
    34. num1 += other.num1;
    35. num2 += other.num2;
    36. return *this;
    37. }
    38. Num &operator++() //重载前置++
    39. {
    40. ++num1;
    41. ++num2;
    42. return *this;
    43. }
    44. Num &operator++(int) //重载后置++
    45. {
    46. num1++;
    47. num2++;
    48. return *this;
    49. }
    50. Num operator-()const //重载-
    51. {
    52. Num temp;
    53. temp.num1 = -num1;
    54. temp.num2 = -num2;
    55. return temp;
    56. }
    57. void init(int n1,int n2) //修改类中的值
    58. {
    59. num1 = n1;
    60. num2 = n2;
    61. }
    62. void show() //展示
    63. {
    64. if(num2 < 0)
    65. {
    66. cout << num1 << num2 << "j" << endl;
    67. }
    68. else
    69. {
    70. cout << num1 << "+" << num2 << "j" << endl;
    71. }
    72. }
    73. };
    74. int main()
    75. {
    76. Num n1; //调用无参构造
    77. Num n2(5,3); //调用有参构造
    78. n1.show(); //调用展示函数
    79. cout << "*********************" << endl;
    80. n1.init(3,2); //调用修改函数
    81. n1.show();
    82. cout << "*********************" << endl;
    83. n1++;
    84. n1.show();
    85. cout << "*********************" << endl;
    86. ++n1;
    87. n1.show();
    88. cout << "*********************" << endl;
    89. if(n1 == n2) // 调用重载的相等函数
    90. {
    91. cout << "true" << endl;
    92. }
    93. else
    94. {
    95. cout << "false" << endl;
    96. }
    97. cout << "*********************" << endl;
    98. n1 += n2; //调用加等于重载函数
    99. n1.show();
    100. n1 = -n2; //调用重载-
    101. cout << "*********************" << endl;
    102. n2.show();
    103. return 0;
    104. }

     

  • 相关阅读:
    Linux常用命令详细教程
    【scikit-learn基础】--『监督学习』之 决策树分类
    力扣练习——43 路径总和
    【JavaEE】多线程(二)
    埃文科技受邀出席“安全堤坝”技术论坛
    day068:字符流读、写数据,及其注意事项、flush和close方法、字符缓冲流
    前端工程师的20道react面试题自检
    28 Python的numpy模块
    计算机网络 应用层
    RN开发环境的搭建
  • 原文地址:https://blog.csdn.net/qq_53478460/article/details/133522449