定义一个Shape基类,并派生出圆球体(Sphere)和立方体类(Cube),输入半径,分别求圆球体与立方体对象的表面积和体积。
时间: 2024-02-17 20:03:33 浏览: 157
矩形类及派生类,算面积、体积
好的,以下是实现代码(使用C++语言):
```c++
#include<iostream>
using namespace std;
class Shape {
public:
virtual double getArea() = 0; // 纯虚函数,求面积
virtual double getVolume() = 0; // 纯虚函数,求体积
};
class Sphere : public Shape {
private:
double radius;
public:
Sphere(double r) : radius(r) {}
double getArea() {
return 4 * 3.14159 * radius * radius;
}
double getVolume() {
return 4.0/3.0 * 3.14159 * radius * radius * radius;
}
};
class Cube : public Shape {
private:
double length;
public:
Cube(double l) : length(l) {}
double getArea() {
return 6 * length * length;
}
double getVolume() {
return length * length * length;
}
};
int main() {
double radius, length;
cout << "请输入圆球的半径:";
cin >> radius;
Sphere sphere(radius);
cout << "圆球的表面积为:" << sphere.getArea() << endl;
cout << "圆球的体积为:" << sphere.getVolume() << endl;
cout << "请输入立方体的边长:";
cin >> length;
Cube cube(length);
cout << "立方体的表面积为:" << cube.getArea() << endl;
cout << "立方体的体积为:" << cube.getVolume() << endl;
return 0;
}
```
以上代码中,我们首先定义了一个`Shape`基类,其中包含了两个纯虚函数`getArea()`和`getVolume()`,分别用于求形状对象的表面积和体积。接着,我们派生出了`Sphere`和`Cube`类,分别用于表示圆球体和立方体,并实现了它们的表面积和体积计算函数。在`main()`函数中,我们分别通过用户输入来创建`Sphere`和`Cube`对象,并输出它们的表面积和体积。
阅读全文