C++定义一个基类Shape,在此基础上派生出Rectangle和Circle,二者都有一个GetArea()函数计算对象面积。使用Rectangle类创建一个派生类Square。
时间: 2024-04-29 18:26:05 浏览: 140
声明一个图形基类并在它的基础上派生出其他类并编写程序实现各类的定义及实现
回答:
好的,我了解你的要求,并且已经明白了你的问题。下面是对你的问题的回答:
首先,我们需要定义一个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()函数。
希望我的回答能够帮到你。
阅读全文