C++接頭辞演算子と接尾辞演算子の違い


接頭辞++と接尾辞++の違い
i++:iにアクセスしてから++操作を行う
++i:++操作を行ってからiにアクセス
演算子リロードでの接頭辞++と接尾辞++の使用例の背景:メンバー変数xとyのあるPointクラスがあり、Pointクラスに「++」をリロードする必要がある
  • 接頭辞+:++iは、最後に++オブジェクトによる参照を返すので、「++i」は、左の値(例えば、付与動作:++i=5;)
  • とすることができる.
    Point& Point::operator++(){
         
    x++;
    y++;
    return *this;
    }
    
  • 接尾辞+:i++は最後に被++オブジェクトの値を返すので、「i+」は左の値
  • として使用できない.
    Point Point::operator++(int){
          // int         
    Point temp =*this;
    ++*this; //     ++   
    return temp;
    }
    //         ,             
    

    転載先https://www.cnblogs.com/taoye1997/p/11815115.html