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

cpp_overloading.html