实现1个简单的二维点类。构造函数可以用初始化列表实现对数据成员的初 始化。
(1)
实现各个成员函数。
(2)
实现Point 类中的成员函数getDistance,计算两点之间距离。
(3)
定义普通函数getDistance,计算2 点之间距离
从键盘输入两点的坐标,分别用成员函数和普通函数计算这两点的距离。
类的定义:
class Point
{
public:
Point( double newX=0, double newY=0);
void setValue(double newX, double newY);
double getX( );
double getY();
double getDistance(Point& p2);
private:
double x, y;
};
其中 x
和y
是数据成员,本别表示点的x坐标和y坐标。
裁判测试程序样例:
#include <iostream>
#include <cmath>
using namespace std;
class Point
{
public:
Point( double newX=0, double newY=0);
void setValue(double newX, double newY);
double getX( );
double getY();
double getDistance(Point& p2); //成员函数计算距离
private:
double x, y;
};
double getDistance(Point& p1, Point& p2); //普通函数计算距离
int main()
{ Point p1,p2;
double x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
p1.setValue(x1,y1);
p2.setValue(x2,y2);
double dis1 = p1.getDistance(p2); //成员函数版本计算
cout<<"Distance: "<<dis1<<endl;
double dis2 = getDistance(p1,p2); //普通函数版本计算
cout<<"Distance: "<<dis2<<endl;
return 0;
}
/* 请在这里填写答案 */
输入格式:
在一行内分别输入两个点的坐标。
输出格式:
输出两点间的距离。
输入样例1:
3 4 5 6
输出样例1:
Distance:2.82843
Distance:2.82843
/* 请在这里填写答案 */
Point::Point(double newX, double newY)
{
newX=0;
newY=0;
x=newX;
y=newY;
}
void Point::setValue(double newX, double newY)
{
x=newX;
y=newY;
}
double Point::getX()
{
return x;
}
double Point::getY()
{
return y;
}
double Point::getDistance(Point& p2)
{
double s,l,h;
l=x-p2.x;
h=y-p2.y;
s=sqrt(l*l+h*h);
return s;
}
double getDistance(Point& p1, Point& p2)
{
double s,l,h;
l=p1.getX()-p2.getX();
h=p1.getY()-p2.getY();
s=sqrt(l*l+h*h);
return s;
}