++( 自增运算符) 与 --( 自减运算符)

 

    前缀形式的++操作符出现在操作数的前面。

    例如:   ++a;

    说明: 操作数的值被相加,而表达式的值就是操作数增加后的值

 

    举例:   int a, b = 1;

            a = ++b;        //b增加至2,a得到的值为2

 

    后缀形式的++操作符出现在操作数的后面。

    例如:   a++;

    说明: 操作数的值仍被相加,而表达式的值是操作数增加前的值

 

    举例:   int a, b = 1;

            a = b++;        //b增加至2,a得到的值为1

 

    显然,根据操作符的位置,我们很容易记住这个规则:

    

    在操作数之前的操作符(++b)在变量值在被使用之前增加它的值;在操作数之后的操作符(b++)在变量值被使用之后才增加的值。--操作符的工作原理与此相同,只是它所执行的是减值操作而非增值操作。

 

自增运算符重载

由于前缀自增与后缀自增在如果通过运算符重载在形式上相同,都为

以Date类为例 Date& operator++(Date &)(全局函数)/ Date& operator++( )(成员函数)无法区分。

故人为规定前缀自增与后缀自增运算符的表达形式:

由于编译器必须能够识别出前缀自增与后缀自增,故人为规定了用一个 int 区分,并没有实际的含义。

前缀自增示例 

Calendar& Calendar::operator++(){
    tick();
    return *this;
}

后缀自增示例
Calendar Calendar::operator++(int){
    
    Calendar temp = *this;
    tick();
    return temp;
 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值