5.写一个面向对象的程序,定义抽象基类 Shape,由它派生出 1个类:Rectangle (矩形),显示图形的面积。要求:(1)抽象基类 Shape 的公有成员有纯虚函数 area0。(2)Rectangle类公有继承自 Shape类,新增 double 型保护数据成员 length (长)、width(宽),公有成员有构造函数和求矩形面积的 area0函数,构造函数带 2 个参数用于定义对象时赋初值。
时间: 2024-02-29 07:52:03 浏览: 99
好的,以下是这个面向对象程序的实现:
```C++
#include <iostream>
using namespace std;
// 抽象基类 Shape
class Shape {
public:
virtual double area0() = 0; // 纯虚函数
};
// Rectangle 类,公有继承自 Shape 类
class Rectangle : public Shape {
protected:
double length; // 长
double width; // 宽
public:
Rectangle(double l, double w) : length(l), width(w) {} // 构造函数
virtual double area0() { return length * width; } // 求矩形面积的 area0 函数
};
int main() {
Rectangle r(3.0, 4.0); // 创建一个长为 3,宽为 4 的矩形对象
cout << "The area of the rectangle is " << r.area0() << endl; // 输出矩形面积
return 0;
}
```
这个程序定义了一个抽象基类 Shape,其中有一个纯虚函数 area0。然后从 Shape 派生出了 Rectangle 类,该类新增了长和宽两个保护数据成员,并实现了求矩形面积的 area0 函数,以及构造函数。在 main 函数中,创建了一个长为 3,宽为 4 的矩形对象,并输出其面积。
阅读全文