#include <iostream>#include <cmath>using namespace std;class Circle {private: double radius;public: Circle(double r = 0) : radius(r) {} double GetArea() { return M_PI * radius * radius; } double GetPerimeter() { return 2 * M_PI * radius; } void SetRadius(double r) { radius = r; }};class Cone : public Circle {private: double height;public: Cone(double r = 0, double h = 0) : Circle(r), height(h) {} void SetParameter(double r, double h) { SetRadius(r); height = h; } double GetSurfaceArea() { double l = sqrt(height * height + radius * radius); return M_PI * radius * l + M_PI * radius * radius; }};int main() { Cone c(2.5, 5.5); cout << "The surface area of the cone is " << fixed << setprecision(2) << c.GetSurfaceArea() << endl; c.SetParameter(5.5, 6.6); cout << "The surface area of the cone is " << fixed << setprecision(2) << c.GetSurfaceArea() << endl; return 0;}
时间: 2024-04-04 22:31:11 浏览: 104
使用include <iostream>时一定要加using namespace std
这段代码实现了一个圆锥体类和一个圆类,并且圆锥体类公有继承了圆类。圆类具有私有数据成员半径(radius)和计算面积(GetArea)、计算周长(GetPerimeter)、修改半径(SetRadius)的成员函数;圆锥体类具有私有数据成员高(height)和计算圆锥体表面积(GetSurfaceArea)、修改圆锥体底面半径和高(SetParameter)的成员函数。在主函数中,定义了一个圆锥体类对象,并初始化底面半径和高分别为2.5和5.5,然后输出圆锥体的表面积。接着,修改圆柱体的底面半径和高分别为5.5和6.6,再次输出圆锥体的表面积。
这段代码的实现比较简单,没有什么问题。不过需要注意的是,圆锥体的表面积计算公式中,开平方根的函数是sqrt,需要在头文件cmath中引入。同时,输出结果需要保留两位小数,可以使用头文件iomanip中的fixed和setprecision函数。
阅读全文