5、关系运算符重载.cpp 1022 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //4.5.5 关系运算符重载
  2. //作用 : 重载关系运算符,可以让两个自定义类型对象进行对比操作
  3. #if(0)
  4. #include <iostream>
  5. class Person
  6. {
  7. public:
  8. Person(std::string name, int age)
  9. {
  10. m_Name = name;
  11. m_Age = age;
  12. }
  13. //重载 ==
  14. bool operator==(Person &p)
  15. {
  16. if (this->m_Name == p.m_Name && this->m_Age == p.m_Age)
  17. {
  18. return true;
  19. }
  20. return false;
  21. }
  22. //重载 !=
  23. bool operator!=(Person &p)
  24. {
  25. if (this->m_Name == p.m_Name && this->m_Age == p.m_Age)
  26. {
  27. return false;
  28. }
  29. return true;
  30. }
  31. std::string m_Name;
  32. int m_Age;
  33. };
  34. void test01()
  35. {
  36. Person p1("Tom", 18);
  37. Person p2("Tom", 18);
  38. if (p1 == p2)
  39. {
  40. std::cout << "p1 和 p2是相等的" << std::endl;
  41. }
  42. else
  43. {
  44. std::cout << "p1 和 p2是不相等的" << std::endl;
  45. }
  46. if (p1 != p2)
  47. {
  48. std::cout << "p1 和 p2是不相等的" << std::endl;
  49. }
  50. else
  51. {
  52. std::cout << "p1 和 p2是相等的" << std::endl;
  53. }
  54. }
  55. int main()
  56. {
  57. test01();
  58. system("pause");
  59. return 0;
  60. }
  61. #endif