请以点类Point为基类派生出一个圆类Circle。圆类Circle的数据成员为r(私有属性,存储圆的半径,圆心的点坐标通过继承点类Point加以实现),成员函数有构造函数Circle、计算圆的面积函数Area、计算圆的周长函数Perimeter和输出函数Display,其中构造函数实现基类和圆类的数据成员的初始化,Display函数实现圆心坐标(利用基类Point的Display实现)、圆的半径、圆的面积(利用Area函数实现)和圆的周长(利用Perimeter函数实现)的输出。请编写圆类的定义及成员函数实现,并在主函数中定义圆类对象,验证各个函数的正确性。 说明:圆周率PI的取值为3.14 已知Point类及main代码如下:(不允许改动) class Point { public: Point(double xx,double yy); //constructor void Display(); //display point private: double x,y; //平面的点坐标x,y }; Point::Point(double xx,double yy) { x=xx; y=yy; } void Point::Display() { cout<<"Point("<<x<<","<<y<<")"<<endl; } int main() { double x,y,r; cin>>x>>y>>r; //圆心的点坐标及圆的半径 Circle C(x,y,r); C.Display(); //输出圆心点坐标,圆的半径,圆的面积,圆的周长 return 0;
时间: 2023-04-01 19:02:07 浏览: 170
以下是圆类的定义及成员函数实现:
```
#include <iostream>
using namespace std;
const double PI = 3.14;
class Point {
public:
Point(double xx, double yy); //constructor
void Display(); //display point
protected:
double x, y; //平面的点坐标x,y
};
Point::Point(double xx, double yy) {
x = xx;
y = yy;
}
void Point::Display() {
cout << "Point(" << x << "," << y << ")" << endl;
}
class Circle : public Point {
public:
Circle(double xx, double yy, double rr); //constructor
double Area(); //计算圆的面积函数
double Perimeter(); //计算圆的周长函数
void Display(); //输出函数
private:
double r; //圆的半径
};
Circle::Circle(double xx, double yy, double rr) : Point(xx, yy) {
r = rr;
}
double Circle::Area() {
return PI * r * r;
}
double Circle::Perimeter() {
return 2 * PI * r;
}
void Circle::Display() {
Point::Display();
cout << "圆的半径:" << r << endl;
cout << "圆的面积:" << Area() << endl;
cout << "圆的周长:" << Perimeter() << endl;
}
int main() {
double x, y, r;
cin >> x >> y >> r; //圆心的点坐标及圆的半径
Circle C(x, y, r);
C.Display(); //输出圆心点坐标,圆的半径,圆的面积,圆的周长
return ;
}
```
在主函数中定义了一个圆类对象C,通过输入圆心的点坐标及圆的半径来初始化该对象,然后调用Display函数输出圆心点坐标,圆的半径,圆的面积和圆的周长。
阅读全文