c++问题:定义一个平面直角坐标系上的一个点的类CPoint

定义一个平面直角坐标系上的一个点的类CPoint,重载“++”和“--”运算符,并区分这两种运算符的前置和后置运算,构造一个完整的程序。谢谢!... 定义一个平面直角坐标系上的一个点的类CPoint,重载“++”和“--”运算符,并区分这两种运算符的前置和后置运算,构造一个完整的程序。
谢谢!
展开
 我来答
梦想窗外
推荐于2016-03-15 · TA获得超过1588个赞
知道大有可为答主
回答量:1180
采纳率:0%
帮助的人:1546万
展开全部
#include <iostream>
#include <fstream>
using namespace std;

class CPoint;
istream &operator >> (istream &in, CPoint &p);
ostream &operator << (ostream &out, const CPoint &p);

class CPoint
{
public:
CPoint(int _x = 0, int _y = 0) : x(_x), y(_y) {}
CPoint(CPoint &rhs) : x(rhs.x), y(rhs.y) {}
int GetX() { return x; }
int GetY() { return y; }
friend istream &operator >> (istream &in, CPoint &p);
friend ostream &operator << (ostream &out, const CPoint &p);
CPoint operator++(int) // 后缀++
{
CPoint temp(x, y);
x++, y++;
return temp;
}
CPoint &operator++() // 前缀++
{
++x, ++y;
return *this;
}

CPoint operator--(int) // 后缀--
{
CPoint temp(x, y);
x--, y--;
return temp;
}
CPoint operator--() // 前缀--
{
--x, --y;
return *this;
}
private:
int x, y;
};

istream &operator >> (istream &in, CPoint &p)
{
in >> p.x >> p.y;
return in;
}

ostream &operator << (ostream &out, const CPoint &p)
{
out << p.x << ' ' << p.y;
return out;
}

void main()
{
CPoint pt(15, 12);
cout << pt++ << endl;
cout << pt << endl;
cout << ++pt << endl;

cout << pt-- << endl;
cout << pt << endl;
cout << --pt << endl;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
商远城和美
2019-06-17 · TA获得超过3656个赞
知道大有可为答主
回答量:3063
采纳率:26%
帮助的人:477万
展开全部
#include
<iostream>
#include
<fstream>
using
namespace
std;
class
CPoint;
istream
&operator
>>
(istream
&in,
CPoint
&p);
ostream
&operator
<<
(ostream
&out,
const
CPoint
&p);
class
CPoint
{
public:
CPoint(int
_x
=
0,
int
_y
=
0)
:
x(_x),
y(_y)
{}
CPoint(CPoint
&rhs)
:
x(rhs.x),
y(rhs.y)
{}
int
GetX()
{
return
x;
}
int
GetY()
{
return
y;
}
friend
istream
&operator
>>
(istream
&in,
CPoint
&p);
friend
ostream
&operator
<<
(ostream
&out,
const
CPoint
&p);
CPoint
operator++(int)
//
后缀++
{
CPoint
temp(x,
y);
x++,
y++;
return
temp;
}
CPoint
&operator++()
//
前缀++
{
++x,
++y;
return
*this;
}
CPoint
operator--(int)
//
后缀--
{
CPoint
temp(x,
y);
x--,
y--;
return
temp;
}
CPoint
operator--()
//
前缀--
{
--x,
--y;
return
*this;
}
private:
int
x,
y;
};
istream
&operator
>>
(istream
&in,
CPoint
&p)
{
in
>>
p.x
>>
p.y;
return
in;
}
ostream
&operator
<<
(ostream
&out,
const
CPoint
&p)
{
out
<<
p.x
<<
'
'
<<
p.y;
return
out;
}
void
main()
{
CPoint
pt(15,
12);
cout
<<
pt++
<<
endl;
cout
<<
pt
<<
endl;
cout
<<
++pt
<<
endl;
cout
<<
pt--
<<
endl;
cout
<<
pt
<<
endl;
cout
<<
--pt
<<
endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式