递增++和递减-C ++中的运算符重载
增量(++)和减量(-)运算符面积为2,是C++中可用的一元运算符。下面的示例说明如何为前缀以及后缀用法重载增量(++)运算符。同样,您可以重载运算符(-)。
示例
#include <iostream> using namespace std; class Time { private: int hours; int minutes; public: Time(int h, int m) { hours = h; minutes = m; } void display() { cout << "H: " << hours << " M:" << minutes <<endl; } //重载前缀++运算符 Time operator++ () { ++minutes; //增加当前对象 if(minutes >= 60) { ++hours; minutes -= 60; } return Time(hours, minutes); } //重载postfix++运算符 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.display(); ++T1; T1.display(); T2++; T2.display(); T2++; T2.display(); return 0; }
输出结果
这给出了结果-
H: 12 M:0 H: 12 M:1 H: 10 M:41 H: 10 M:42