C++重载运算符的题

来源:百度知道 编辑:UC知道 时间:2024/04/28 01:34:26
C++重载运算符

建立一个二维坐标系的类TwoCoor,用x、y表示坐标值,实现两坐标点的加、减运算,计算两坐标点间的距离,并重载输入/输出运算符,使之能直接输入/输出坐标点的坐标值。

//快下班了,随便写一个
#ifndef TWO_COOR
#define TWO_COOR

#include<iostream>

class TwoCoor
{
friend std::istream& operator>>(std::istream& is, TwoCoor& tc);
friend std::ostream& operator<<(std::ostream& os, const TwoCoor& tc);
friend double Distance(const TwoCoor&, const TwoCoor&);
private:
double x,y;
public:
TwoCoor(double _x=0.0, double _y=0.0):x(_x),y(_y){}
inline TwoCoor operator+(const TwoCoor& tc);
inline TwoCoor operator-(const TwoCoor& tc);
};

std::istream& operator>>(std::istream& is, TwoCoor& tc)
{
is>>tc.x>>tc.y;
return is;
}
std::ostream& operator<<(std::ostream& os, const TwoCoor& tc)
{
os<<tc.x<<tc.y;
return os;
}

TwoCoor TwoCoor::operator+(const TwoCoor& tc)
{
TwoCoor res;
res.x = x+tc.x;
res.y = y+tc.y;
return res;
}