前缀加加和后缀加加重载

实现后缀加加的重载 
class_type&   operator++(int){ 
            ……//不知道怎么样实现 


也就是说不知道后缀加加的内部机制是怎么样实现的?? 
有人能说明白不? 
重载后缀加加实现和内部类型相同的运算功能,可以不??
 
 
  • Mr_Yang用户头像
  • Mr_Yang
  • (初级程序员)
  • 等 级:
#1楼 得分:0回复于:2005-12-15 23:26:13
增1减1运算符是单目运算符。它们又有前缀和后缀运算两种。为了区分这两种运算,将后缀运算视为又目运算符。表达式 

        obj++或obj-- 

被看作为: 

        obj++0或obj--0 

#include   <iostream.h> 

class   counter 

public: 
        counter()   {   v=0;   } 
        counter   operator   ++(); 
        counter   operator   ++(int   ); 
        void   print()   {   cout < <v < <endl;   } 
private: 
        unsigned   v; 
}; 

counter   counter::operator   ++() 

        v++; 
        return   *this; 


counter   counter::operator   ++(int) 

        counter   t; 
        t.v   =   v++; 
        return   t; 

 
#2楼 得分:0回复于:2005-12-15 23:59:31
记住类似N++这样后缀的重载的原则如下 
在下面的语句中 
INT M = N++ 
M得到的值是N做++前的值 
而N中保留的是做了++后的值 

对照理解 
counter   counter::operator   ++(int) 

        counter   t; 
        t.v   =   v++; 
        return   t; 
}
 
#3楼 得分:0回复于:2005-12-16 00:06:15
说的好,试验试验看看
 
#4楼 得分:0回复于:2005-12-16 00:09:47
照上面写的,t.v=v++,实际上就是拷贝了一份调用operator   ++(int)的对象,然后把这个拷贝的对象返回,然后v自加
 
#5楼 得分:0回复于:2005-12-16 22:32:56
对于类的后缀运算的重载确实是这样的 
但是我的问题不是这样的简单的,要是就这样能解决了就不用麻烦各位高人了 
呵呵!!!! 

我的意思是实现的后缀能进行四则运算。如: 
int   i,i1=5; 
i=(i1++)+(i1++); 
这样的运算能力。 
但是在c++builder6.0这样的重载好像不行, 
但是在vc++6.0中好像又可以。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值