首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x ,y 表示该类对象在二维坐标系中的坐标位首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x 、 y 表示该类对象在二维坐标
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 13:54:23
首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x ,y 表示该类对象在二维坐标系中的坐标位首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x 、 y 表示该类对象在二维坐标
首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x ,y 表示该类对象在二维坐标系中的坐标位
首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x 、 y 表示该类对象在二维坐标系中的坐标位置,该类中定义至少两个公有成员函数:
(1) 构造函数:设置点的初始值;
(2) 成员函数 show 显示点的位置,具体输出形式请参考下面的圆心输出样式.
该类中如果还需要定义其他函数或作其他说明的,请读者自己考虑,无统一规定.
然后,以类 POINT 为基类定义公有派生类 CIRCLE ,其类定义方式如下:(此段代码请直接复制到程序中,注意:已给出的部分不可以改变,如果需要其他函数或说明的,请自行添加)
class CIRCLE:public POINT
{
private:
const double PI; // 常数据成员,值为3.14159
POINT r1,r2; // 两个对象成员,r1 表示圆心,r1 和 r2 有距离作为半径
double r; // 表示圆的半径
public:
CIRCLE ( POINT p1,POINT p2);
double circum () ;
double area () ;
void show () ;
};
其中成员函数 show () 的代码给出如下,请直接复制到程序中:
void CIRCLE::show ()
{
cout
首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x ,y 表示该类对象在二维坐标系中的坐标位首先定义一个点类 POINT ,有两个 double 型的 保护 数据成员 x 、 y 表示该类对象在二维坐标
修改如下,调试无误:
#include "iostream"
#include "cmath"
using namespace std;
//实现POINT类
class POINT
{
protected://private:
double x;
double y;
public:
POINT(double x1=0,double y1=0);
void show();
double getX();
double getY();
};
POINT::POINT(double x1,double y1)
{
x=x1;
y=y1;
}
double POINT::getX()
{
return x;
}
double POINT::getY()
{
return y;
}
void POINT::show()
{
cout<<"("<<x<<","<<y<<")"<<endl;
}
//POINT类实现完成
class CIRCLE: public POINT
{
private:
const double PI; // 常数据成员,值为3.14159
POINT r1,r2; // 两个对象成员, r1 表示圆心, r1 和 r2 有距离作为半径
double r; // 表示圆的半径
public:
CIRCLE ( POINT p1, POINT p2);
double circum () ;
double area () ;
void show () ;
};
//实现CIRCLE类的构造函数
CIRCLE::CIRCLE(POINT p1,POINT p2):r1(p1),r2(p2),PI(3.14159)
{
r=sqrt(pow((r1.getX()-r2.getX()),2)+pow((r1.getY()-r2.getY()),2));
}
//
void CIRCLE::show ()
{
cout<<"the center of the circle is:\n";
r1.show () ;
cout<<"the radius is:"<<r<<endl;
cout<<"the area is:"<<area()<<endl;
cout<<"the circumference is:"<<circum()<<endl;
}
//实现CIRCLE类的circum和area方法
double CIRCLE::circum()
{
return 2*PI*r;
}
double CIRCLE::area()
{
return PI*r*r;
}
//
int main ()
{
double x[4];
int i;
for (i=0;i<4;i++)
cin>>x[i]; // 点的横纵坐标由输入给定
POINT p1(x[0],x[1]),p2(x[2],x[3]);
CIRCLE c(p1,p2);
cout<<"the information about c is:\n";
c.show ();
return 0;
}
调试结果: