按以下提示信息,由基类的设计和测试开始,逐渐地完成各个类的设计,并且完成要求的功能。 ①设计一个Point(点)类,包含数据成员x、y(坐标点)。 ②以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径)。 要求编写程序,设计出各类中基本的成员函数,包括构造函数、设置数据成员、显示信息和获取数据成员的函数,以及计算圆的周长和面积。
时间: 2024-03-10 07:47:27 浏览: 71
基于Java和Kotlin的Android常用工具类和基类设计源码
好的,我会根据您的要求回答您的问题。根据您的描述,我可以给出以下代码实现:
```C++
#include<iostream>
#include<cmath>
using namespace std;
class Point {
protected:
double x, y; // 坐标点
public:
Point(double a = 0, double b = 0) : x(a), y(b) {}
void setPoint(double a, double b) { x = a, y = b; }
void showPoint() { cout << "(" << x << "," << y << ")"; }
double getx() { return x; }
double gety() { return y; }
};
class Circle : public Point {
private:
double r; // 半径
public:
Circle(double a = 0, double b = 0, double c = 0) : Point(a, b), r(c) {}
void setCircle(double a, double b, double c) { setPoint(a, b), r = c; }
double getr() { return r; }
double getPerimeter() { return 2 * 3.14159 * r; } // 周长
double getArea() { return 3.14159 * r * r; } // 面积
void showCircle() {
cout << "圆心坐标为:";
showPoint();
cout << ",半径为:" << r << endl;
cout << "周长为:" << getPerimeter() << endl;
cout << "面积为:" << getArea() << endl;
}
};
int main() {
Circle c;
c.setCircle(1, 2, 3);
c.showCircle();
return 0;
}
```
这个程序中,我们首先定义了一个基类 `Point`,包含数据成员 `x`、`y` 分别表示坐标点的横纵坐标。然后,我们派生出一个 `Circle` 类,增加了数据成员 `r` 表示圆的半径。在 `Circle` 类中,我们定义了一些成员函数,包括构造函数、设置数据成员、显示信息和获取数据成员的函数,以及计算圆的周长和面积的函数。
在 `main` 函数中,我们创建了一个 `Circle` 类的对象 `c`,并设置其属性为 `(1,2)` 的圆心和半径为 `3`。最后,我们调用 `showCircle` 函数显示圆的信息,包括圆心坐标、半径、周长和面积。
阅读全文