C++ 增量和减量运算符重载
增量运算符 (++) 和减量运算符 (--) 是 C++ 中两个重要的一元运算符。
以下示例说明如何重载增量运算符 (++) 以实现前缀和后缀用法。类似地,您可以重载运算符 (--)。
#include <iostream> using namespace std; class Time { private: int hours; // 0 to 23 int minutes; // 0 to 59 public: // 必需的构造函数 Time() { hours = 0; minutes = 0; } Time(int h, int m) { hours = h; minutes = m; } // 显示时间的方法 void displayTime() { cout << "H: " << hours << " M:" << minutes <<endl; } // 重载前缀 ++ 运算符 Time operator++ () { ++minutes; // 增加这个对象 if(minutes >= 60) { ++hours; minutes -= 60; } return Time(hours, minutes); } // 重载后缀 ++ 运算符 Time operator++( int ) { // 保存原始值 Time T(hours, minutes); // 增加这个对象 ++minutes; if(minutes >= 60) { ++hours; minutes -= 60; } // 返回旧的原始值 return T; } }; int main() { Time T1(11, 59), T2(10,40); ++T1; // 递增 T1 T1.displayTime(); // 显示 T1 ++T1; // 再次递增 T1 T1.displayTime(); // 显示 T1 T2++; // 递增 T2 T2.displayTime(); // 显示 T2 T2++; // 再次递增 T2 T2.displayTime(); // 显示 T2 return 0; }
当编译并执行上述代码时,它会产生以下结果 -
H: 12 M:0 H: 12 M:1 H: 10 M:41 H: 10 M:42