2021-05-09利用友元函数对Point类重载“++”运算符

题目
定义Point类,有坐标x,y两个成员变量,利用友元函数对Point类重载“++”运算符,实现对坐标值的改变。具体要求如下:

(1) 编写程序定义Point类,在类中定义整型的私有成员变量x,y;

(2) 在类中定义两个友元函数,分别重载前置++和后置++;

(3) 编写主函数测试。主函数如下,不能更改。

主函数如下:

int main()

{
   Point a(1,2);

a++;

a
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
下面是定义Point重载自增运算符的示例代码: ```c++ #include<iostream> using namespace std; class Point{ private: int _x; int _y; public: Point(int x=0, int y=0):_x(x), _y(y){} Point& operator++(){ // 置自增运算符重载 _x++; _y++; return *this; } Point operator++(int){ // 后置自增运算符重载 Point tmp(*this); _x++; _y++; return tmp; } friend Point& operator--(Point& p); // 友元函数置自减运算符重载 friend Point operator--(Point& p, int); // 友元函数后置自减运算符重载 void print(){ cout << "(" << _x << ", " << _y << ")" << endl; } }; Point& operator--(Point& p){ // 友元函数置自减运算符重载 p._x--; p._y--; return p; } Point operator--(Point& p, int){ // 友元函数后置自减运算符重载 Point tmp(p); p._x--; p._y--; return tmp; } int main(){ Point p(1, 2); cout << "p: "; p.print(); // (1, 2) ++p; cout << "++p: "; p.print(); // (2, 3) p++; cout << "p++: "; p.print(); // (3, 4) --p; cout << "--p: "; p.print(); // (2, 3) p--; cout << "p--: "; p.print(); // (1, 2) return 0; } ``` 如果希望将自增运算符重载友元函数,则需要将重载函数定义在外,并在函数声明加上关键字`friend`,示例如下: ```c++ class Point{ private: int _x; int _y; public: Point(int x=0, int y=0):_x(x), _y(y){} friend Point& operator++(Point& p); // 友元函数置自增运算符重载 friend Point operator++(Point& p, int); // 友元函数后置自增运算符重载 }; Point& operator++(Point& p){ // 友元函数置自增运算符重载 p._x++; p._y++; return p; } Point operator++(Point& p, int){ // 友元函数后置自增运算符重载 Point tmp(p); p._x++; p._y++; return tmp; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Huber Wong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值