用C++写:程序功能:构建一个基类Shape类,它是一个表示形状的抽象类,area()为求图形面积的虚函数。请从Shape类公有派生矩形类(Rectangle),然后编制应用程序建立矩形类对象,求矩形的面积并输出它们的有关数据。 (1)定义Shape类的保护数据成员length和breadth,表示形状的长度和宽度,均为int数据类型。 (2)定义Shape类的带参构造函数Shape(int x,int y),并初始化数据成员length和breadth为x和y。 (3)定义Shape类的公有成员函数area(),并设置为虚函数。 (4)完成派生类Rectangle的构造函数的定义,实现数据成员的初始化。 (6)完成派生类Rectangle的成员函数area的定义,求矩形面积,并屏幕输出矩形的长、宽和面积。 (7)编写主函数,创建Rectangle对象r,并初始化数据成员为(3,5),然后向r对象发送area消息。程序运行结果如下。 Rectangle: length:3 breadth:5 area:15
时间: 2024-03-22 11:40:56 浏览: 94
c++ 形状类Shape(派生出圆类Circle和矩形类Rectangle)
以下是用C++实现题目要求的程序代码:
```cpp
#include <iostream>
using namespace std;
class Shape {
protected:
int length;
int breadth;
public:
Shape(int x, int y) : length(x), breadth(y) {}
virtual int area() = 0;
};
class Rectangle : public Shape {
public:
Rectangle(int x, int y) : Shape(x, y) {}
int area() {
return length * breadth;
}
};
int main() {
Rectangle r(3, 5);
cout << "Rectangle:" << endl;
cout << "\tlength: " << r.length << endl;
cout << "\tbreadth: " << r.breadth << endl;
cout << "\tarea: " << r.area() << endl;
return 0;
}
```
程序输出结果为:
```
Rectangle:
length: 3
breadth: 5
area: 15
```
解释:程序定义了一个抽象类Shape,其中包含了表示形状长度和宽度的保护数据成员和一个纯虚函数area()。然后通过公有派生的方式定义了Rectangle类,并在其构造函数中初始化数据成员。Rectangle类重写了父类Shape中的虚函数area(),实现了矩形面积的计算。在主函数中创建了一个Rectangle对象r,并通过访问其数据成员和调用虚函数area()输出了矩形的有关数据。
阅读全文