定义一个图形类 Picture, 再定义Picture 的两个子类:圆形类 Circle、矩形类1 求:图像类:有求周长和求面积和显示图形信息的功能。圆形类:包含园心和半 求周长和求面积的方法。短形类:包含长和宽,重写求周长和求面积的方法。
时间: 2024-02-09 08:10:29 浏览: 98
好的,根据您的要求,我可以给出如下的代码实现:
```
#include <iostream>
#include <cmath>
using namespace std;
class Picture {
protected:
string shapeType; // 图形类型
public:
Picture(string type) : shapeType(type) {}
virtual double getArea() = 0; // 纯虚函数,求面积
virtual double getPerimeter() = 0; // 纯虚函数,求周长
void displayInfo() { // 显示图形信息
cout << "This is a " << shapeType << " picture." << endl;
cout << "Area: " << getArea() << endl;
cout << "Perimeter: " << getPerimeter() << endl;
}
};
class Circle : public Picture {
private:
double centerX; // 圆心横坐标
double centerY; // 圆心纵坐标
double radius; // 半径
public:
Circle(double x, double y, double r) : Picture("Circle"), centerX(x), centerY(y), radius(r) {}
double getArea() { // 求面积
return M_PI * pow(radius, 2);
}
double getPerimeter() { // 求周长
return 2 * M_PI * radius;
}
};
class Rectangle : public Picture {
private:
double length; // 长
double width; // 宽
public:
Rectangle(double l, double w) : Picture("Rectangle"), length(l), width(w) {}
double getArea() { // 求面积
return length * width;
}
double getPerimeter() { // 求周长
return 2 * (length + width);
}
};
int main() {
Circle c(0, 0, 5);
c.displayInfo();
Rectangle r(3, 4);
r.displayInfo();
return 0;
}
```
这段代码定义了一个 `Picture` 类作为图形的父类,其中包含了求周长、求面积和显示图形信息的纯虚函数。然后又定义了 `Circle` 和 `Rectangle` 两个子类,分别继承了 `Picture` 类,并重写了父类中的纯虚函数。在 `main()` 函数中,我们创建了一个圆形对象和一个矩形对象,分别调用它们的 `displayInfo()` 函数以显示它们的信息。
阅读全文