定义一个Shape基类,并派生出圆球体(Sphere)和立方体类(Cube),输入半径,分别求圆球体与立方体对象的表面积和体积。
时间: 2024-02-17 18:03:33 浏览: 160
声明一个图形基类并在它的基础上派生出其他类并编写程序实现各类的定义及实现
好的,以下是实现代码(使用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`对象,并输出它们的表面积和体积。
阅读全文