请用C++基类是使用极坐标的点类,从它派生一个圆类,圆类用点类坐 标作为圆心,圆周通过极坐标原点,圆类有输出圆心直角坐 标,圆半径和面积的成员函数。完成类的设计并验证。
时间: 2023-10-06 14:05:59 浏览: 98
以下是用C++实现的基类Point和派生类Circle的代码:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
class Point {
protected:
double r, theta;
public:
Point(double r = 0, double theta = 0) {
this->r = r;
this->theta = theta;
}
void set(double r, double theta) {
this->r = r;
this->theta = theta;
}
void show() {
double x = r * cos(theta);
double y = r * sin(theta);
cout << "(" << x << ", " << y << ")";
}
};
class Circle : public Point {
private:
double radius;
public:
Circle(double r = 0, double theta = 0, double radius = 0) : Point(r, theta) {
this->radius = radius;
}
double area() {
return M_PI * radius * radius;
}
void show() {
Point::show();
cout << ", radius = " << radius << endl;
}
};
int main() {
Circle c(2, M_PI / 4, 1);
c.show();
cout << "Area: " << c.area() << endl;
return 0;
}
```
在上述代码中,我们首先定义了一个Point类作为基类,它用极坐标表示点的位置。然后我们派生一个Circle类,它用Point类的坐标作为圆心,圆周通过极坐标原点,并且具有半径和面积的成员函数。Circle类中的show函数输出圆心的直角坐标和半径,Point类中的show函数输出极坐标。
在main函数中,我们创建了一个Circle对象,进行了输出和计算面积的操作,并验证了类的设计。
阅读全文