C++ 自增(++) 和自减( -- ) 运算符重载

返回上一级

递增运算符 ( ++ ) 和递减运算符 ( -- ) 是 C++ 语言中两个重要的一元运算符,包括前缀和后缀两种用法

我们写一个范例演示如何重载前缀自增 ( ++obj )和后缀自减运算符 ( obj-- )

/**
 * file: main.cpp
 * author: 简单教程(www.twle.cn)
 *
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
 */

#include <iostream>

class Time
{
private:

    int minute;             
    int second;

public:

    Time(){
        minute = 0;
        second = 0;
    }


    Time(int m, int s){
        minute = m;
        second = s;
    }

    void display(){
        std::cout << minute << " : " << second << "\n";
    }


    // 重载前缀递增运算符 ( ++ )

    Time operator++ ()  
    {
        ++second;

        if ( second >= 60)
        {
            ++minute;
            second = 0;
        }

        return Time(minute, second);
      }


    // 重载后缀递增运算符( ++ )
    Time operator++( int )         
    {
        // 保存原始值
        Time t(minute, second);

        // 对象加 1
        ++second;

        if ( second >= 60)
        {
            ++minute;
            second = 0;
        }


        // 返回旧的原始值
        return t; 
    }
};


int main()
{
   Time t1(12, 58), t2(0,45);

   ++t1;                // T1 加 1
   t1.display();        // 显示 T1
   ++t1;                // T1 再加 1
   t1.display();        // 显示 T1

   t2++;                // T2 加 1
   t2.display();        // 显示 T2
   t2++;                // T2 再加 1
   t2.display();        // 显示 T2

   return 0;
}

编译运行以上范例,输出结果如下:

12 : 59
13 : 0
0 : 46
0 : 47

返回上一级

C++ 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.