编写代码实现一个表示点的父类Dot和一个表示圆的子类Cir,求圆的面积。 Dot类有两个private数据成员 float x,y; Cir类新增一个private的数据成员半径float r 和一个public的求面积的函数getArea( ); 主函数已经给出,请编写Dot和Cir类。 #include <iostream> #include<iomanip> using namespace std; const double PI=3.14; //请编写你的代码 int main(){ float x,y,r; cin>>x>>y>>r; Cir c(x,y,r); cout<<fixed<<setprecision(2)<<c.getArea()<<endl; return 0; }对这道题目进行分析并写出思路
时间: 2024-02-01 15:02:28 浏览: 150
循环队列详解及队列的顺序表示和实现
题目要求我们编写两个类,一个是表示点的父类 Dot,另一个是表示圆的子类 Cir,求圆的面积。Dot 类有两个私有数据成员 float x,y,而 Cir 类新增一个私有数据成员半径 float r,并且有一个公有的求面积的函数 getArea()。
首先,我们可以先编写父类 Dot:
```C++
class Dot {
private:
float x;
float y;
public:
Dot(float _x, float _y): x(_x), y(_y) {}
float getX() { return x; }
float getY() { return y; }
};
```
然后,我们编写子类 Cir:
```C++
class Cir : public Dot {
private:
float r;
public:
Cir(float _x, float _y, float _r): Dot(_x, _y), r(_r) {}
float getArea() { return PI * r * r; }
};
```
在子类 Cir 中,我们继承了父类 Dot,并新增了一个私有数据成员 r,并且有一个公有的求面积的函数 getArea(),它返回圆的面积,使用了公共常量 PI 和私有数据成员 r。
在主函数 main 中,我们输入点的坐标和圆的半径,然后创建一个 Cir 类的对象 c,并输出其面积。
完整代码如下:
```C++
#include <iostream>
#include <iomanip>
using namespace std;
const double PI = 3.14;
class Dot {
private:
float x;
float y;
public:
Dot(float _x, float _y): x(_x), y(_y) {}
float getX() { return x; }
float getY() { return y; }
};
class Cir : public Dot {
private:
float r;
public:
Cir(float _x, float _y, float _r): Dot(_x, _y), r(_r) {}
float getArea() { return PI * r * r; }
};
int main() {
float x, y, r;
cin >> x >> y >> r;
Cir c(x, y, r);
cout << fixed << setprecision(2) << c.getArea() << endl;
return 0;
}
```
以上就是本题的思路和代码实现。
阅读全文