生成完整的 c++程序: 己定义一个Shape 抽象类,在此基础上派生出矩形Rectangle和圆形Circle类,二者都有 GetPerim()函数计算对象的周长,并编写测试main()函数。
时间: 2024-04-15 13:28:39 浏览: 152
用C++设计一个立方体类Box,它能计算并输出立方体的体积和表面积,并编写main函数测试该类。
4星 · 用户满意度95%
以下是一个完整的 C++ 程序,实现了一个抽象类 Shape,以及派生类 Rectangle 和 Circle。每个类都有一个 GetPerim() 函数来计算对象的周长,并在 main() 函数中进行了测试。
```cpp
#include <iostream>
#include <cmath>
// 抽象类 Shape
class Shape {
public:
// 纯虚函数,用于计算周长
virtual double GetPerim() const = 0;
};
// 矩形类 Rectangle
class Rectangle : public Shape {
private:
double length;
double width;
public:
Rectangle(double l, double w) : length(l), width(w) {}
double GetPerim() const override {
return 2 * (length + width);
}
};
// 圆形类 Circle
class Circle : public Shape {
private:
double radius;
public:
Circle(double r) : radius(r) {}
double GetPerim() const override {
return 2 * M_PI * radius;
}
};
int main() {
// 创建一个矩形对象并计算周长
Rectangle rectangle(4, 6);
double rectPerim = rectangle.GetPerim();
std::cout << "矩形的周长: " << rectPerim << std::endl;
// 创建一个圆形对象并计算周长
Circle circle(3);
double circlePerim = circle.GetPerim();
std::cout << "圆形的周长: " << circlePerim << std::endl;
return 0;
}
```
这个程序定义了一个抽象类 Shape,其中包含一个纯虚函数 GetPerim(),没有实现任何功能。然后,通过派生类 Rectangle 和 Circle 分别实现了矩形和圆形的 GetPerim() 函数。
在 main() 函数中,我们创建了一个矩形对象和一个圆形对象,并调用它们的 GetPerim() 函数来计算周长。最后,将结果输出到控制台上。
请注意,为了计算圆形的周长,我们使用了数学库中的常量 M_PI,并在程序开头包含了 <cmath> 头文件。
阅读全文