定义一个Shape类记录任意形状的位置,并定义一个计算面积的函数和显示图形形状及中心位置的函数,这两个函数都是纯虚函数并显示输出
时间: 2023-12-19 22:07:30 浏览: 87
以下是定义Shape类的代码,包含两个纯虚函数:
```c++
#include<iostream>
#include<cmath>
using namespace std;
class Shape {
protected:
double x; // 形状的横坐标
double y; // 形状的纵坐标
public:
Shape(double x, double y) : x(x), y(y) {}
virtual ~Shape() {}
virtual double area() = 0; // 纯虚函数,计算面积
virtual void display() = 0; // 纯虚函数,显示图形形状及中心位置
};
class Circle : public Shape {
private:
double r; // 圆的半径
public:
Circle(double x, double y, double r) : Shape(x, y), r(r) {}
double area() { // 重写计算面积的函数
return M_PI * r * r;
}
void display() { // 重写显示图形形状及中心位置的函数
cout << "圆心坐标为(" << x << "," << y << ")" << endl;
cout << "圆的面积为" << area() << endl;
}
};
class Rectangle : public Shape {
private:
double w; // 矩形的宽
double h; // 矩形的高
public:
Rectangle(double x, double y, double w, double h) : Shape(x, y), w(w), h(h) {}
double area() { // 重写计算面积的函数
return w * h;
}
void display() { // 重写显示图形形状及中心位置的函数
cout << "矩形的左下角坐标为(" << x - w / 2 << "," << y - h / 2 << ")" << endl;
cout << "矩形的面积为" << area() << endl;
}
};
int main() {
Circle c(0, 0, 1);
c.display();
Rectangle r(0, 0, 2, 3);
r.display();
return 0;
}
```
运行结果:
```
圆心坐标为(0,0)
圆的面积为3.14159
矩形的左下角坐标为(-1,-1.5)
矩形的面积为6
```
阅读全文