1. 其它 编程完成如下要求: (1)设计一个立体图形类(CStereoShape类),并满足如下要求: 1)CStereoShape类有一个纯虚函数GetArea,能够获取立方体的表面积; 2)CStereoShape类有一个纯虚函数GetVolume,能够获取立方体的体积; (2)设计一个立方体类(CCube类),该类继承于CStereoShape类,并满足如下要求: 1)CCube类有一个带参数的构造函数,其参数分别对应于立方体的长、宽、高; 2)用一个成员函数来实现对立方体长、宽、高的设置; 3)重载CStereoShape类的GetArea和GetVolume,分别完成立方体的表面积和体积的计算。 (3)设计一个球体类(CSphere),该类继承于CStereoShape类,并满足如下要求: 1)CSphere类有一个带参数的构造函数,其参数对应于球体的半径; 2)用一个成员函数来实现对球体半径的设置; 3)重载CStereoShape类的GetArea和GetVolume,分别完成球体的表面积和体积的计算。 (4)实现一个main函数,在main函数中至少完成如下工作: 1)实例化一个CCube类的对象a_cube和CSphere类的对象c_sphere; 2)定义一个CStereoShape类的指针p; 3)将a_cube的长、宽和高分别设置为4、5和6;将p指向a_cube,通过p将a_cube的表面积和体积打印到屏幕上; 4)将c_sphere的半径设置为7;将p指向c_sphere,通过p将c_sphere的表面积和体积打印到屏幕上。 提交
时间: 2024-02-09 21:08:51 浏览: 67
以下是代码实现:
```c++
#include <iostream>
using namespace std;
class CStereoShape {
public:
virtual double GetArea() = 0;
virtual double GetVolume() = 0;
};
class CCube : public CStereoShape {
public:
CCube(double l, double w, double h) : length(l), width(w), height(h) {}
void SetLength(double l) { length = l; }
void SetWidth(double w) { width = w; }
void SetHeight(double h) { height = h; }
double GetArea() override { return 2 * (length * width + width * height + height * length); }
double GetVolume() override { return length * width * height; }
private:
double length, width, height;
};
class CSphere : public CStereoShape {
public:
CSphere(double r) : radius(r) {}
void SetRadius(double r) { radius = r; }
double GetArea() override { return 4 * 3.14 * radius * radius; }
double GetVolume() override { return 4.0 / 3.0 * 3.14 * radius * radius * radius; }
private:
double radius;
};
int main() {
CCube a_cube(0, 0, 0);
CSphere c_sphere(0);
CStereoShape* p = nullptr;
a_cube.SetLength(4);
a_cube.SetWidth(5);
a_cube.SetHeight(6);
p = &a_cube;
cout << "A cube's surface area is: " << p->GetArea() << endl;
cout << "A cube's volume is: " << p->GetVolume() << endl;
c_sphere.SetRadius(7);
p = &c_sphere;
cout << "A sphere's surface area is: " << p->GetArea() << endl;
cout << "A sphere's volume is: " << p->GetVolume() << endl;
return 0;
}
```
输出结果如下:
```
A cube's surface area is: 148
A cube's volume is: 120
A sphere's surface area is: 615.44
A sphere's volume is: 1436.03
```
阅读全文