(1)定义一个Shape抽象基类:包含公有权限的纯虚成员函数getArea()成员函数返回面积值,虚析构函数; (2)Shape类作为基类派生出Square类:增加边长属性,构造函数缺省参数初始化边长,成员函数设置边长。成员函数getArea()通过边长(面积=边长*边长)计算正方形面积;
时间: 2024-03-12 20:43:26 浏览: 85
好的,我可以为您提供相应的代码示例,如下所示:
```cpp
#include <iostream>
using namespace std;
// 定义Shape抽象基类
class Shape {
public:
// 纯虚成员函数getArea(),返回面积值
virtual double getArea() const = 0;
// 虚析构函数
virtual ~Shape() {}
};
// 派生出Square类
class Square : public Shape {
private:
double sideLength; // 边长
public:
// 构造函数,缺省参数初始化边长
Square(double length = 1.0) : sideLength(length) {}
// 成员函数设置边长
void setSideLength(double length) {
sideLength = length;
}
// 成员函数getArea(),通过边长计算正方形面积
virtual double getArea() const {
return sideLength * sideLength;
}
};
int main() {
// 创建Square对象
Square s(5.0);
// 输出正方形面积
cout << "The area of the square is: " << s.getArea() << endl;
// 修改边长后重新计算面积
s.setSideLength(7.0);
cout << "The area of the square is: " << s.getArea() << endl;
return 0;
}
```
在上面的代码中,我们首先定义了一个抽象基类`Shape`,其中包含了一个纯虚成员函数`getArea()`,用于返回面积值。然后我们派生出一个`Square`类,它继承了`Shape`类,并增加了一个`sideLength`成员变量,代表正方形的边长。在`Square`类中,我们重写了基类的`getArea()`函数,通过边长计算正方形的面积。此外,我们还提供了一个`setSideLength()`函数,用于设置正方形的边长。
在`main()`函数中,我们创建了一个`Square`对象`s`,并调用其`getArea()`函数来计算正方形面积。然后我们通过调用`setSideLength()`函数修改了正方形的边长,并重新计算了面积。
阅读全文