定义一个基类Shape,在此基础上派生出Rectangle和Circle,二者都有getArea( )函数计算对象的面积,再使用Rectangle类创建一个派生类Square。在主函数中测试Rectangle、Circle和Square这三个类。不用虚函数实现多组输入
时间: 2024-02-12 10:06:20 浏览: 71
好的,下面是基于您的要求编写的C++代码:
```c++
#include <iostream>
using namespace std;
// 基类Shape
class Shape {
public:
virtual double getArea() {
return 0;
}
};
// 派生类Rectangle
class Rectangle : public Shape {
private:
double width;
double height;
public:
Rectangle(double w, double h) {
width = w;
height = h;
}
double getArea() {
return width * height;
}
};
// 派生类Circle
class Circle : public Shape {
private:
double radius;
public:
Circle(double r) {
radius = r;
}
double getArea() {
return 3.14 * radius * radius;
}
};
// 派生类Square
class Square : public Rectangle {
public:
Square(double s) : Rectangle(s, s) {
}
};
int main() {
double w, h, r, s;
cin >> w >> h >> r >> s;
Rectangle rect(w, h);
Circle circle(r);
Square square(s);
cout << "Rectangle Area: " << rect.getArea() << endl;
cout << "Circle Area: " << circle.getArea() << endl;
cout << "Square Area: " << square.getArea() << endl;
return 0;
}
```
以上代码定义了一个基类Shape,并在此基础上派生出Rectangle和Circle两个类。Rectangle和Circle都实现了getArea()函数,用于计算对象的面积。另外,Square类派生自Rectangle类,也继承了getArea()函数。
在主函数中,我们分别创建了一个Rectangle对象、一个Circle对象和一个Square对象,并使用它们的getArea()函数计算了它们的面积并输出。请按照题目要求输入四个参数,分别代表长方形的宽和高,圆形的半径,正方形的边长。
阅读全文