C++定义一个基类Shape,在此基础上派生出Rectangle和Circle,二者都有一个GetArea()函数计算对象面积。使用Rectangle类创建一个派生类Square。
时间: 2024-04-29 17:26:05 浏览: 145
回答:
好的,我了解你的要求,并且已经明白了你的问题。下面是对你的问题的回答:
首先,我们需要定义一个Shape基类,其中包含GetArea()函数来计算对象的面积。
```
class Shape {
public:
virtual double GetArea() const = 0;
};
```
接下来,我们可以派生出Rectangle和Circle类,并分别实现它们的GetArea()函数。
```
class Rectangle : public Shape {
public:
Rectangle(double w, double h) : width(w), height(h) {}
virtual double GetArea() const override {
return width * height;
}
private:
double width;
double height;
};
class Circle : public Shape {
public:
Circle(double r) : radius(r) {}
virtual double GetArea() const override {
return 3.1415926 * radius * radius;
}
private:
double radius;
};
```
现在,我们可以使用Rectangle类来创建一个名为Square的派生类。
```
class Square : public Rectangle {
public:
Square(double side) : Rectangle(side, side) {}
};
```
这里,我们重载了Rectangle的构造函数来创建一个Square对象,并将它的width和height都设置为side。
完成了以上步骤,我们就成功地定义了Shape基类,并使用它派生出了Rectangle、Circle和Square类,并在其中实现了GetArea()函数。
希望我的回答能够帮到你。
阅读全文