题目:
1. 编写类Circle。
2. 编写主函数,利用 std::array 创建包含10个对象的Circle数组并初始化。
3. 用基于范围的for循环遍历Circle数组,求10个Circie对象的面积之和。
题目内容:
类Circle有两个构造函数。无参构造函数没有函数体,使用default关键字声明。有参构造函数接收一个double类型参数作为Circle的半径。Circle类的半径的默认值是1.0
类Circle有一个 double getArea() 函数,返回圆的面积。圆周率的值取 3.14
在主函数中用 std::array 声明一个有10个Circle对象的数组。其中前5个Circle对象的半径分别设置为1.0、2.0、3.0、4.0、5.0。后5个对象使用Circle的默认构造函数初始化。
在主函数中,用基于范围的for循环遍历Circle数组,求10个Circie对象的面积之和
在主函数中,输出所求出的面积和。输出结果为双精度浮点数。使用系统默认精度。无需做格式和精度控制。
代码:
#include <iostream> #include <array> class Circle { public: Circle() = default; Circle(double r) { this->r = r; } double getArea() { double area = 3.14 * r * r; return area; } private: double r{ 1.0 }; }; int main() { std::array<Circle, 10> arr{ 1.0,2.0,3.0,4.0,5.0 }; double sumArea{ 0.0 }; for (auto x : arr) { sumArea += x.getArea(); } std::cout << sumArea; return 0; }