c++完整编程:定义一个Point类(点坐标为X,Y),派生出Circle类(新增属性半径radius),要求计算并显示派生类对象的面积。
时间: 2023-12-30 16:07:01 浏览: 134
下面是一个可能的实现:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
class Point {
public:
Point(double x, double y) : x(x), y(y) {}
virtual ~Point() {}
double getX() const { return x; }
double getY() const { return y; }
private:
double x;
double y;
};
class Circle : public Point {
public:
Circle(double x, double y, double radius) : Point(x, y), radius(radius) {}
virtual ~Circle() {}
double getRadius() const { return radius; }
double getArea() const { return M_PI * radius * radius; }
private:
double radius;
};
int main() {
Circle c(1.0, 2.0, 3.0);
cout << "Circle with center (" << c.getX() << ", " << c.getY() << ") and radius " << c.getRadius() << endl;
cout << "Area: " << c.getArea() << endl;
return 0;
}
```
这里先定义了一个 `Point` 类表示点,然后派生出一个 `Circle` 类表示圆,其中新增了属性 `radius` 表示半径。`Circle` 类中还定义了一个计算圆面积的函数 `getArea()`。在 `main()` 函数中创建了一个 `Circle` 对象,并输出圆的信息和面积。