设计一个基类Shape,包括: 名为sName的属性(图形名称); 构造函数应对sName属性进行初始化。 设计Shape的继承类Rectangle, 包括: 长,宽两个属性; 构造函数调用Shape的构造函数,并初始化长,宽两个属性; getArea()成员函数计算并返回矩形面积。 设计Shape的继承类Circle,包括: 半径属性; 构造函数调用Shape的构造函数,并初始化半径属性; getArea()成员函数计算并返回圆形面积。 注意:请结合程序以理解题目对类的接口的要求。 【样例输入】 Jupyter 12.1 9.9 Moon 3.3 【样例输出】 shape0 Rect Jupyter,Area: 119.79 Circle Moon,Area: 34.21
时间: 2024-03-17 09:46:52 浏览: 88
以下是基于题目要求的 C++ 代码实现:
```
#include <iostream>
#include <string>
using namespace std;
class Shape {
protected:
string sName;
public:
Shape(string name) : sName(name) {}
};
class Rectangle : public Shape {
private:
double length;
double width;
public:
Rectangle(string name, double l, double w) : Shape(name), length(l), width(w) {}
double getArea() {
return length * width;
}
};
class Circle : public Shape {
private:
double radius;
public:
Circle(string name, double r) : Shape(name), radius(r) {}
double getArea() {
return 3.14 * radius * radius;
}
};
int main() {
string name1, name2;
double l, w, r;
cin >> name1 >> l >> w >> name2 >> r;
Rectangle rect(name1, l, w);
Circle circle(name2, r);
cout << "shape0 Rect " << rect.sName << ",Area: " << rect.getArea() << endl;
cout << "Circle " << circle.sName << ",Area: " << circle.getArea() << endl;
return 0;
}
```
程序的输入格式为:首先输入一个长方形的名称和长、宽,然后输入一个圆形的名称和半径。程序的输出格式为:输出长方形和圆形的面积。
阅读全文