C++ 重载自增++和自减–
自增(++)和自减(–)运算符是C++中两个重要的一元运算符。
下面的示例解释了如何重载前缀和后缀使用的自增(++)运算符。类似地,你也可以重载自减(–)运算符。
#include <iostream> using namespace std; class Time { private: int hours; // 0 to 23 int minutes; // 0 to 59 public: // required constructors Time() { hours = 0; minutes = 0; } Time(int h, int m) { hours = h; minutes = m; } // method to display time void displayTime() { cout << "H: " << hours << " M:" << minutes <<endl; } // overloaded prefix ++ operator Time operator++ () { ++minutes; // increment this object if(minutes >= 60) { ++hours; minutes -= 60; } return Time(hours, minutes); } // overloaded postfix ++ operator Time operator++( int ) { // save the orignal value Time T(hours, minutes); // increment this object ++minutes; if(minutes >= 60) { ++hours; minutes -= 60; } // return old original value return T; } }; int main() { Time T1(11, 59), T2(10,40); ++T1; // increment T1 T1.displayTime(); // display T1 ++T1; // increment T1 again T1.displayTime(); // display T1 T2++; // increment T2 T2.displayTime(); // display T2 T2++; // increment T2 again T2.displayTime(); // display T2 return 0; }
当上述代码被编译并执行时,产生以下结果−
H: 12 M:0 H: 12 M:1 H: 10 M:41 H: 10 M:42
版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com