用c++定义一个Shape基类,并派生出圆球体(Spheere)和立方体(cube)分别求圆球体与立方体对象的表面积和体积
时间: 2023-12-10 08:37:08 浏览: 155
基类和派生类 面向对象程序设计 C++ 实验报告
以下是代码实现:
```c++
#include <iostream>
using namespace std;
class Shape {
public:
virtual double getVolume() = 0; // 纯虚函数
virtual double getArea() = 0; // 纯虚函数
};
class Sphere : public Shape { // 圆球体类
private:
double radius;
public:
Sphere(double r) {
radius = r;
}
double getVolume() { // 计算圆球体体积
return 4.0 / 3.0 * 3.14 * radius * radius * radius;
}
double getArea() { // 计算圆球体表面积
return 4.0 * 3.14 * radius * radius;
}
};
class Cube : public Shape { // 立方体类
private:
double length;
public:
Cube(double l) {
length = l;
}
double getVolume() { // 计算立方体体积
return length * length * length;
}
double getArea() { // 计算立方体表面积
return 6.0 * length * length;
}
};
int main() {
Sphere s(2.0);
Cube c(3.0);
cout << "圆球体的体积是:" << s.getVolume() << endl;
cout << "圆球体的表面积是:" << s.getArea() << endl;
cout << "立方体的体积是:" << c.getVolume() << endl;
cout << "立方体的表面积是:" << c.getArea() << endl;
return 0;
}
```
输出结果:
```
圆球体的体积是:33.4933
圆球体的表面积是:50.24
立方体的体积是:27
立方体的表面积是:54
```
阅读全文