zoukankan      html  css  js  c++  java
  • 区别前置/后置操作符

    对于从C转业者都知道

    (以++举例)
    前置: 累加后取出
    后置: 取出后累加
    

    在重载 ++ ,-- 操作符的时候,为了避免前置跟后置的区别, 让后置有一个int的传参。

    class UPint{
    public:
    UPint& operator++();        //前置
    const UPint operator++(int);    //后置
    

    };

    UPint    i;
    ++i;    //调用i.operator();
    i++;    //调用i.operator(int);
    

    请注意:

    1.后置返回的值为const的对象。
    2.前置返回为reference。

    后置返回const的原因:
    如果没有const 可以这么用:

    i++++;

    相当于:

    i.operator(0).operator(0);
    

    operator++的第二个动作调用施行于第一个的返回对象。
    两个原因不期望这么做:
    1.这么写的人估计是希望能够i加两次。而实际是只进行了一次。
    2.这和内建类型行为不一致。

    一条无上宝典:一旦有疑虑,试试ints行为如何并遵循之

    所以最好的方法就是➕const

  • 相关阅读:
    CSS知识(18---21.CSS完毕)
    CSS 知识(13---)
    CSS编辑知识 ( 1---12 )
    CSS 选择器
    前端CSS
    修建泳池的题解
    2020-3-7模拟赛题解
    奶牛排队的题解
    数的拆分的题解
    青蛙王子的题解
  • 原文地址:https://www.cnblogs.com/skyhuangdan/p/6357687.html
Copyright © 2011-2022 走看看