5、封装案例练习:设计立方体类.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. //练习案例1:设计立方体类
  2. //设计立方体类(Cube)
  3. //求出立方体的面积和体积
  4. //分别用全局函数和成员函数判断两个立方体是否相等。
  5. //1、创建立方体类
  6. //2、设计属性
  7. //3、设计行为 获取立方体面积和体积
  8. //4、分别利用全局函数和成员函数 判断两个立方体是否相等
  9. #include <iostream>
  10. class Cube
  11. {
  12. public:
  13. //行为
  14. //设置获取长、宽、高
  15. //设置长
  16. void setL(int l)
  17. {
  18. m_L = l;
  19. }
  20. //获取长
  21. int getL()
  22. {
  23. return m_L;
  24. }
  25. //设置宽
  26. void setW(int w)
  27. {
  28. m_W = w;
  29. }
  30. //获取宽
  31. int getW()
  32. {
  33. return m_W;
  34. }
  35. //设置高
  36. void setH(int h)
  37. {
  38. m_H = h;
  39. }
  40. //获取高
  41. int getH()
  42. {
  43. return m_H;
  44. }
  45. //获取立方体的面积
  46. int calculateS()
  47. {
  48. return 2 * m_L * m_W + 2 * m_H * m_W + 2 * m_L * m_H;
  49. }
  50. //获取立方体的体积
  51. int calculateV()
  52. {
  53. return m_H * m_L * m_W;
  54. }
  55. //利用成员函数来判断两个立方体是否相等
  56. bool isSameByClass(Cube &c)
  57. {
  58. if (m_L == c.getL() && m_W == c.getW() && m_H == c.getH())
  59. {
  60. return true;
  61. }
  62. return false;
  63. }
  64. private:
  65. //属性
  66. int m_L;
  67. int m_W;
  68. int m_H;
  69. };
  70. //利用全局函数判断 两个立方体是否相等
  71. bool isSame(Cube& c1, Cube& c2)
  72. {
  73. if (c1.getL() == c2.getL() && c1.getW() == c2.getW() && c1.getH() == c2.getH())
  74. {
  75. return true;
  76. }
  77. return false;
  78. }
  79. int main5()
  80. {
  81. //创建立方体对象
  82. Cube c1;
  83. c1.setL(10);
  84. c1.setW(10);
  85. c1.setH(10);
  86. std::cout << "c1的面积为 : " << c1.calculateS() << std::endl;
  87. std::cout << "c1的体积为 : " << c1.calculateV() << std::endl;
  88. //创建第二个立方体
  89. Cube c2;
  90. c1.setL(10);
  91. c1.setW(10);
  92. c1.setH(10);
  93. //利用全局函数判断
  94. bool ret = isSame(c1, c2);
  95. if (ret)
  96. {
  97. std::cout << "全局函数判断 : c1和c2是相等的" << std::endl;
  98. }
  99. else
  100. std::cout << "全局函数判断 : c1和c2是不相等的" << std::endl;
  101. //利用成员函数判断
  102. ret = c1.isSameByClass(c2);
  103. if (ret)
  104. {
  105. std::cout << "成员函数判断 : c1和c2是相等的" << std::endl;
  106. }
  107. else
  108. std::cout << "成员函数判断 : c1和c2是不相等的" << std::endl;
  109. system("pause");
  110. return 0;
  111. }