体验常成员函数

#include<iostream>
#include<cmath>
using namespace std;
class CPoint
{
private:
  double x;  // 横坐标
  double y;  // 纵坐标
public:
  CPoint(double xx=0,double yy=0);
  double Distance1(CPoint p) const; //两点之间的距离(一点是当前点——想到this了吗?,另一点为p)
  double Distance0() const;          // 到原点(0,0)的距离
  CPoint SymmetricAxis(char style) const;//style取'x','y'和'o'分别表示按x轴, y轴, 原点对称
  void input();  //以x,y 形式输入坐标点
  void output(); //以(x,y) 形式输出坐标点
};
CPoint::CPoint(double xx,double yy)
{
    x=xx;
    y=yy;
}
double CPoint::Distance1(CPoint p)const
{
    double l;
    l=sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));
    return l;
}
double CPoint::Distance0()const
{
    double l;
    l=sqrt((x*x)+(y*y));
    return l;
}
void CPoint::input()
{
    char t;
    cout<<"请以x,y形式输入坐标点"<<endl;
    cin>>x>>t>>y;
    if(t!=',')
        void input();
}
void CPoint::output()
{
    cout<<"("<<x<<','<<y<<")"<<endl;
}
CPoint CPoint::SymmetricAxis(char style) const
{
    CPoint p(this->x,this->y);
    if(style=='x')
        p.y=-y;
    else if(style=='y')
        p.x=-x;
    else if(style=='o')
        p.x=-x;
    p.y=-y;
}
int main()
{
    CPoint p1,p2;
    p1.input();
    p2.input();
    cout<<"两点距离为:"<<p1.Distance1(p2)<<endl;
    cout<<"第一个点到原点的距离为:"<<p1.Distance0()<<endl;
    p1.SymmetricAxis('x');
    p1.output();
}

体验常成员函数_第1张图片

你可能感兴趣的:(体验常成员函数)