圆类的定义使用和成员函数重载与圆环类的继承.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include <iostream>
  2. #include <cmath>
  3. #define pi 3.14
  4. using namespace std;
  5. class Circle {
  6. private:
  7. double radius; // 半径
  8. public:
  9. // 构造函数,初始化半径
  10. Circle(double r) : radius(r) {}
  11. // 重载的GetArea()成员函数,计算圆的面积
  12. double GetArea() const {
  13. return pi * radius * radius;
  14. }
  15. // 重载的GetArea()成员函数,计算圆环的面积
  16. double GetArea(double outerRadius) const {
  17. cout << "the ring is created!" << endl;
  18. return pi * (radius * radius - outerRadius * outerRadius);
  19. }
  20. };
  21. int main() {
  22. double radius;
  23. double outerRadius = 0; // 圆环的外半径,默认为0
  24. // 从用户输入读取半径
  25. cin >> radius;
  26. if (cin.fail()) {
  27. cerr << "Invalid input!" << endl;
  28. return 1;
  29. }
  30. // 创建Circle对象
  31. Circle circle(radius);
  32. cout << "the circle is created!" << endl;
  33. // 如果输入了两个值,则计算圆环面积
  34. if (cin.peek() != '\n') {
  35. cin >> outerRadius;
  36. Circle ring(outerRadius); // 创建圆环对象
  37. cout << "the ring's area is:" << circle.GetArea(outerRadius) << endl; //输出面积
  38. }
  39. else {
  40. cout << "the area is:" << circle.GetArea() << endl;
  41. }
  42. return 0;
  43. }