• 233062C++&QTday5


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

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

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

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

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

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

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

     代码:

    1. #include
    2. using namespace std;
    3. //定义一个图形类
    4. class Shape
    5. {
    6. protected:
    7. double peri;
    8. double area;
    9. public:
    10. //无参构造函数
    11. Shape(){cout<<"无参构造"<
    12. //有参构造函数
    13. Shape(double l,double s):peri(l),area(s) {cout<<"有参构造"<
    14. //析构函数
    15. ~Shape(){cout<<"析构函数"<
    16. //输出周长和面积
    17. };
    18. //定义一个圆形类
    19. class Circle:public Shape
    20. {
    21. private:
    22. double rad;
    23. public:
    24. //无参构造函数
    25. Circle() {cout<<"Circle::无参构造"<
    26. //有参构造函数
    27. Circle(int r):rad(r)
    28. {
    29. cout<<"有参构造"<
    30. }
    31. //获取圆形周长
    32. bool Circle_peri()
    33. {
    34. peri=2*3.14*rad;
    35. if(peri>0)
    36. {
    37. return true;
    38. }
    39. else
    40. {
    41. return false;
    42. }
    43. }
    44. //获取圆形面积
    45. bool Circle_area()
    46. {
    47. area=3.14*rad*rad;
    48. if(area>0)
    49. {
    50. return true;
    51. }
    52. else
    53. {
    54. return false;
    55. }
    56. }
    57. //输出周长和面积
    58. void show()
    59. {
    60. Circle_peri();
    61. Circle_area();
    62. cout<<"周长="<
    63. cout<<"面积="<
    64. }
    65. };
    66. //定义一个矩形类
    67. class Rect:public Shape
    68. {
    69. private:
    70. double length;
    71. double width;
    72. public:
    73. //无参构造函数
    74. Rect() {cout<<" Rect::无参构造"<
    75. //有参构造函数
    76. Rect(double a,double b):length(a),width(b)
    77. {
    78. cout<<"有参构造"<
    79. }
    80. //获取矩形周长
    81. bool Rect_peri()
    82. {
    83. peri= length*2+width*2;
    84. if(peri>0)
    85. {
    86. return true;
    87. }
    88. else
    89. {
    90. return false;
    91. }
    92. }
    93. //获取矩形面积
    94. bool Rect_area()
    95. {
    96. area=length*width;
    97. if(area>0)
    98. {
    99. return true;
    100. }
    101. else
    102. {
    103. return false;
    104. }
    105. }
    106. //输出周长和面积
    107. void show()
    108. {
    109. Rect_peri();
    110. Rect_area();
    111. cout<<"周长="<
    112. cout<<"面积="<
    113. }
    114. };
    115. int main()
    116. {
    117. Circle c1(3);
    118. c1.show();
    119. Rect r1(3,4);
    120. r1.show();
    121. return 0;
    122. }

    运行结果:

    思维导图

  • 相关阅读:
    MySQL筑基篇之增删改查
    深度学习计算 - GPU
    Sikuli 基于图形识别的自动化测试技术
    ROS2之spin()函数解析(C++版)
    使用Navicat将SQL server数据库导入mysql数据库
    PHP些个代码把数据库存储的点播视频和阿里云OSS文件批量下载到本机
    大学生数学竞赛题,微积分方面的
    latexify-py
    Nginx入门到搭建
    interview3-微服务与MQ
  • 原文地址:https://blog.csdn.net/cwj442257772/article/details/132839842