DevCpp6.5定义一个基类Shape,在此基础上派生出Rectangle和Circle,二者都有一个GetArea()函数计算对象面积。使用Rectangle类创建一个派生类Square
时间: 2024-05-12 19:18:36 浏览: 22
好的,我明白了。针对你的问题,可以这样实现:
```c++
class Shape {
public:
virtual double GetArea() = 0;
};
class Rectangle : public Shape {
public:
Rectangle(double w, double h) : width(w), height(h) {}
virtual double GetArea() { return width * height; }
private:
double width;
double height;
};
class Circle : public Shape {
public:
Circle(double r) : radius(r) {}
virtual double GetArea() { return 3.14 * radius * radius; }
private:
double radius;
};
class Square : public Rectangle {
public:
Square(double l) : Rectangle(l, l) {}
};
```
在这个示例代码中,我们首先定义了一个基类 Shape,它定义了一个纯虚函数 GetArea(),用于计算面积。然后我们派生出了具体的矩形和圆形类,它们都实现了自己的 GetArea() 函数。
最后,我们需要创建一个新的派生类 Square,它继承自矩形类 Rectangle。因为正方形和矩形的计算方法是一样的,所以在构造函数中我们只需要传入一个边长即可。由于 Square 类继承自 Rectangle 类,所以它也拥有了 GetArea() 函数,返回的是正方形的面积。