| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1425 人关注过本帖
标题:++和--运算符重载的指针问题
取消只看楼主 加入收藏
渐渐鱼
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2018-5-11
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:0 
++和--运算符重载的指针问题
程序代码:
#include<iostream>
using namespace std;
class Point 
{
    public: 
    Point(){}
    Point(int vx,int vy)
    {
        x=vx;
        y=vy;
    }
    void display()
    {
        cout<<"<"<<x<<","<<y<<">"<<endl;    
    }
    Point &  operator++();    //前置自增 
    Point operator++(int);  //后置自增 
    friend Point & operator--(Point &p);  //前置自减 
    friend Point operator--(Point &p,int); //后置自减 
    private:
        int x,y;

 };

 Point &Point::operator++()   //前置自增 
 {
     if(x<640)
     x++;
     if(y<480)
     y++;
     return *this;

 }

 Point Point::operator++(int) //后置自增 
 {
     Point temp(*this);
     if(x<640)
     x++;
     if(y<480)
     y++;
     return temp;

 }

 Point &operator--(Point &p)   //前置自减 
 {
     if(p.x>0)
     p.x--;
     if(p.y>0)
     p.y--;
     return p;

 }

 Point operator--(Point &p,int)    //后置自减 
 {
     Point temp(p);
     if(p.x>0)
     p.x--;
     if(p.y>0)
     p.y--;
     return temp;

 }

 int main()

 {
     Point p1(200,200),p2(300,300),p3(400,400),p4(50,50);
     
    cout<<"p1=";  //测试前置自增 
    p1.display();
    ++p1;
    cout<<"++p1=";
    p1.display();
    
    cout<<"p2=";    //测试前置自减 
    p2.display();
    ++p2;
    cout<<"++p2=";
    p2.display();
    
    cout<<"p3=";   //测试后置自增 
    p3.display();
    p3++;
    cout<<"p3++=";
    p3.display();
    
    cout<<"p4=";    //测试后置自减 
    p4.display();
    p4--;
    cout<<"p4--";
    p4.display();
    
    return 0;

 }

 



代码里运算符重载里的return *this指针不是特别理解,求大神解!!!!还有那个Point temp(*this)是个什么操作。。。
搜索更多相关主题的帖子: Point int display cout 自增 
2018-05-15 21:31
快速回复:++和--运算符重载的指针问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024593 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved