编写代码实现一个表示点的父类Dot和一个表示圆的子类Circle,求圆的面积。
Dot类有两个private数据成员 double x, y;
Circle类新增一个private的数据成员半径double r 和一个public的求面积的函数getArea( );
主函数已经给出,请编写Dot和Circle类。
#include <iostream>
#include<cstdio>
using namespace std;
const double PI=3.14;
//请编写你的代码
int main(){
double x,y,r;
cin >> x >> y >> r;
Circle c(x,y,r);
printf("%.2f", c.getArea());
return 0;
}
输入描述:
输入三个浮点数x, y, r,空格隔开,分别表示圆心和半径,
输出描述:
父类和子类的构造函数和析构函数调用信息以及圆的面积,小数点后保留2位有效数字,详见输出样例。
示例1
输入
0.0 0.0 4.0
输出
Dot constructor called Circle constructor called 50.24 Circle destructor called Dot destructor called
#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
const double PI = 3.14;
// Dot 类定义
class Dot {
private:
double x, y;
public:
// 构造函数
Dot(double x, double y) : x(x), y(y) {
cout << "Dot constructor called\n";
}
// 析构函数
~Dot() {
cout << "Dot destructor called\n";
}
// 访问器函数
double getX() const {
return x;
}
double getY() const {
return y;
}
};
// Circle 类定义,继承自 Dot
class Circle : public Dot {
private:
double r;
public:
// 构造函数
Circle(double x, double y, double radius) : Dot(x, y), r(radius) {
cout << "Circle constructor called\n";
}
// 析构函数
~Circle() {
cout << "Circle destructor called\n";
}
// 获取半径
double getRadius() const {
return r;
}
// 计算圆的面积
double getArea() const {
return PI * pow(r, 2);
}
};
int main() {
double x, y, r;
cin >> x >> y >> r;
Circle c(x, y, r);
printf("%.2f\n", c.getArea());
return 0;
}