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