pta 抽象类计算图形面积
时间: 2024-06-16 08:02:49 浏览: 121
PTA(Programming Teaching Assistant)是一个在线编程练习平台,用于帮助学生提高编程能力。在PTA上,有一个关于计算图形面积的题目,涉及到抽象类的使用。
抽象类是一种特殊的类,不能被实例化,只能被继承。在计算图形面积的题目中,可以定义一个抽象类Shape,其中包含一个纯虚函数getArea(),用于计算图形的面积。具体的图形类(如圆、矩形、三角形等)可以继承Shape类,并实现自己的getArea()函数。
以下是一个示例代码:
```cpp
#include <iostream>
using namespace std;
// 抽象类 Shape
class Shape {
public:
virtual double getArea() = 0; // 纯虚函数
};
// 圆类 Circle
class Circle : public Shape {
private:
double radius;
public:
Circle(double r) : radius(r) {}
double getArea() {
return 3.14 * radius * radius;
}
};
// 矩形类 Rectangle
class Rectangle : public Shape {
private:
double width;
double height;
public:
Rectangle(double w, double h) : width(w), height(h) {}
double getArea() {
return width * height;
}
};
// 三角形类 Triangle
class Triangle : public Shape {
private:
double base;
double height;
public:
Triangle(double b, double h) : base(b), height(h) {}
double getArea() {
return 0.5 * base * height;
}
};
int main() {
Shape* shape1 = new Circle(5);
Shape* shape2 = new Rectangle(4, 6);
Shape* shape3 = new Triangle(3, 4);
cout << "圆的面积:" << shape1->getArea() << endl;
cout << "矩形的面积:" << shape2->getArea() << endl;
cout << "三角形的面积:" << shape3->getArea() << endl;
delete shape1;
delete shape2;
delete shape3;
return 0;
}
```
在上述代码中,定义了一个抽象类Shape,以及三个具体的图形类Circle、Rectangle和Triangle。每个图形类都实现了自己的getArea()函数来计算面积。在main函数中,创建了不同类型的图形对象,并通过基类指针调用各自的getArea()函数来计算并输出面积。
阅读全文