3.定义一个图形类Figure,其中有保护的成员数据:高度(height)和宽度(width),一个公有的构造函数和一个纯虚函数getArea()。由该图形类建立两个派生类:矩形类Rectangle和等腰三角形类Triangle(其中宽度为等腰三角形底边长,高度为等腰三角形的高度)。在每个派生类中都实现了getArea()函数,分别用来计算矩形和等腰三角形的面积。
时间: 2024-03-08 15:51:26 浏览: 157
好的,这是一个关于面向对象编程的问题。下面是代码实现:
```cpp
#include <iostream>
using namespace std;
class Figure {
protected:
double height, width;
public:
Figure(double h, double w): height(h), width(w) {}
virtual double getArea() = 0;
};
class Rectangle : public Figure {
public:
Rectangle(double h, double w): Figure(h, w) {}
double getArea() {
return height * width;
}
};
class Triangle : public Figure {
public:
Triangle(double b, double h): Figure(h, b/2) {}
double getArea() {
return height * width;
}
};
int main() {
Rectangle r(3, 4);
Triangle t(6, 4);
cout << "The area of the rectangle is " << r.getArea() << endl;
cout << "The area of the triangle is " << t.getArea() << endl;
return 0;
}
```
在这个代码中,我们首先定义了一个抽象类`Figure`,其中有两个保护成员变量`height`和`width`,一个公有构造函数和一个纯虚函数`getArea()`。然后我们定义了两个派生类`Rectangle`和`Triangle`,它们都继承自`Figure`,并分别实现了`getArea()`函数,用来计算矩形和等腰三角形的面积。
在`main()`函数中,我们创建了一个矩形对象和一个等腰三角形对象,并分别调用它们的`getArea()`函数,输出它们的面积。
阅读全文