{"id":"58954449","type":"page","status":"current","title":"02.面向对象程序设计案例","version":{"by":{"type":"known","username":"ethanliu","userKey":"2c90931b6cfb654f016d5c69becc0001","profilePicture":{"path":"/images/icons/profilepics/default.svg","width":48,"height":48,"isDefault":true},"displayName":"刘浩","_links":{"self":"https://wiki.suncaper.net/rest/api/user?key=2c90931b6cfb654f016d5c69becc0001"},"_expandable":{"status":""}},"when":"2022-07-09T01:51:24.000Z","message":"","number":1,"minorEdit":false,"hidden":false,"_links":{"self":"https://wiki.suncaper.net/rest/experimental/content/58954449/version/1"},"_expandable":{"content":"/rest/api/content/58954449"}},"body":{"storage":{"value":"

4.2 面向对象程序设计案例

4.2.1 设计立方体类

设计立方体类(Cube),求出立方体的面积( 2*a*b + 2*a*c + 2*b*c )和体积( a * b * c),分别用全局函数和成员函数判断两个立方体是否相等。

cpp

4.2.2 点和圆的关系

设计一个圆形类(AdvCircle),和一个点类(Point),计算点和圆的关系。

假如圆心坐标为x0, y0, 半径为r,点的坐标为x1, y1

  • 点在圆上:(x1-x0)*(x1-x0) + (y1-y0)*(y1-y0) == r*r
  • 点在圆内:(x1-x0)*(x1-x0) + (y1-y0)*(y1-y0) < r*r
  • 点在圆外:(x1-x0)*(x1-x0) + (y1-y0)*(y1-y0) > r*r




cpp radius){\n\t\t\tcout << \"Point(\" << point.getX() << \",\" << point.getY() << \")在圆外!\" << endl;\n\t\t}\n\t\telse{\n\t\t\tcout << \"Point(\" << point.getX() << \",\" << point.getY() << \")在圆上!\" << endl;\n\t\t}\n\t}\nprivate:\n\tPoint mP; //圆心\n\tint mR; //半径\n};\n\nvoid test(){\n\t//实例化圆对象\n\tCircle circle;\n\tcircle.setP(20, 20);\n\tcircle.setR(5);\n\t//实例化点对象\n\tPoint point;\n\tpoint.setX(25);\n\tpoint.setY(20);\n\n\tcircle.IsPointInCircle(point);\n}]]>


","representation":"storage","_expandable":{"content":"/rest/api/content/58954449"}},"_expandable":{"editor":"","view":"","export_view":"","styled_view":"","anonymous_export_view":""}},"extensions":{"position":"none"},"_links":{"webui":"/pages/viewpage.action?pageId=58954449","edit":"/pages/resumedraft.action?draftId=58954449","tinyui":"/x/0ZKDAw","collection":"/rest/api/content","base":"https://wiki.suncaper.net","context":"","self":"https://wiki.suncaper.net/rest/api/content/58954449"},"_expandable":{"container":"/rest/api/space/2CT","metadata":"","operations":"","children":"/rest/api/content/58954449/child","restrictions":"/rest/api/content/58954449/restriction/byOperation","history":"/rest/api/content/58954449/history","ancestors":"","descendants":"/rest/api/content/58954449/descendant","space":"/rest/api/space/2CT"}}