• 9.12 C++作业


    实现一个图形类(Shape),包含受保护成员属性:周长、面积,

    公共成员函数:特殊成员函数书写

    定义一个圆形类(Circle),继承自图形类,包含私有属性:半径

    公共成员函数:特殊成员函数、以及获取周长、获取面积函数

    定义一个矩形类(Rect),继承自图形类,包含私有属性:长度、宽度

    公共成员函数:特殊成员函数、以及获取周长、获取面积函数

    在主函数中,分别实例化圆形类对象以及矩形类对象,并测试相关的成员函数。

    1. #include <iostream>
    2. using namespace std;
    3. class Shape
    4. {
    5. protected:
    6. double c; //周长
    7. double s; //面积
    8. public:
    9. Shape(){cout<<"无参构造函数"<<endl;}
    10. Shape(double c1, double s1):c(c1), s(s1)
    11. {
    12. cout<<"有参构造函数"<<endl;
    13. }
    14. ~Shape(){cout<<"析构函数"<<endl;}
    15. //拷贝构造
    16. Shape(const Shape &other):c(other.c), s(other.s)
    17. {
    18. cout<<"拷贝构造"<<endl;
    19. }
    20. };
    21. //定义一个圆形类
    22. class Circle:public Shape
    23. {
    24. private:
    25. double r; //半径
    26. public:
    27. Circle(){cout<<"无参构造函数"<<endl;}
    28. Circle(double c1, double s1, double r1):Shape(c1, s1), r(r1)
    29. {
    30. cout<<"有参构造函数"<<endl;
    31. }
    32. ~Circle(){cout<<"析构函数"<<endl;}
    33. //拷贝构造
    34. Circle(const Circle &other):Shape(other.c, other.s), r(other.r)
    35. {
    36. cout<<"拷贝构造"<<endl;
    37. }
    38. //获取周长
    39. void get_c(double r)
    40. {
    41. c = 2*r*3.14;
    42. cout<<"该圆的周长为"<<c<<endl;
    43. }
    44. //获取面积
    45. void get_s(double r)
    46. {
    47. s = 2*r*r*3.14;
    48. cout<<"该圆的面积为"<<s<<endl;
    49. cout<<endl;
    50. }
    51. };
    52. //定义一个矩形类
    53. class Rect:public Shape
    54. {
    55. private:
    56. double h; //
    57. double w; //
    58. public:
    59. Rect(){cout<<"无参构造函数"<<endl;}
    60. Rect(double c1, double s1, double h1, double w1):Shape(c1, s1), h(h1), w(w1)
    61. {
    62. cout<<"有参构造函数"<<endl;
    63. }
    64. ~Rect(){cout<<"析构函数"<<endl;}
    65. //拷贝构造
    66. Rect(const Rect &other):Shape(other.c,other.s), h(other.h), w(other.w)
    67. {
    68. cout<<"拷贝构造"<<endl;
    69. }
    70. //获取周长
    71. void get_c(double h,double w)
    72. {
    73. c = 2*(h+w);
    74. cout<<"该矩形的周长为"<<c<<endl;
    75. }
    76. //获取面积
    77. void get_s(double h, double w)
    78. {
    79. s = h*w;
    80. cout<<"该矩形的面积为"<<s<<endl;
    81. cout<<endl;
    82. }
    83. };
    84. int main()
    85. {
    86. Circle a; //圆类对象
    87. a.get_c(5); //圆周长
    88. a.get_s(5); //圆面积
    89. Rect b; //矩形类对象
    90. b.get_c(4,5); //周长
    91. b.get_s(4,5); //面积
    92. return 0;
    93. }

  • 相关阅读:
    Linux:管道命令与文本处理三剑客(grep、sed、awk)
    Vue之Keep-alive
    JVM - 直接内存
    直接缓存访问DCA
    RCNN、Fast-RCNN、Faster-RCNN介绍
    【EXCEL自动化10】pandas提取指定数据 + 批量求和
    四嗪-一聚乙二醇-炔末端炔烃/3,6-二氨基 -1,2,4,5-四嗪修饰多壁碳纳米管应用
    入门指南:Element UI 组件的安装及使用
    堆(堆排序和模拟堆)
    【【萌新的RiscV学习之在写代码之前对于关键路径的分析-11】】
  • 原文地址:https://blog.csdn.net/JunCool02/article/details/132840595