自增自减运算符重载
遞增運算符(++)和遞減運算符(--)是C++語言中兩個重要的一元運算符。
/*** addMyself.cpp ***/ #include<iostream> using namespace std;class Time {private:int hours;int minutes;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.displayTime();++T1;T1.displayTime();T2++;T2.displayTime();T2++;T2.displayTime();return 0; }運行結(jié)果:
exbot@ubuntu:~/wangqinghe/C++/20190808$ g++ addMyself.cpp -o addMyself
exbot@ubuntu:~/wangqinghe/C++/20190808$ ./addMyself
H: 12 M0
H: 12 M1
H: 10 M41
H: 10 M42
?
注意:int在括號是為了向編譯器說明這是一個后綴形式,而不是表示整數(shù)。
前綴形式重載調(diào)用Check operator++(),后綴形式重載調(diào)用operator++(int)
/*** addOver.cpp ***/ #include<iostream> using namespace std;class Check {private:int i;public:Check():i(0){};Check operator++ (){Check temp;temp.i = ++i;return temp;}Check operator ++ (int){Check temp;temp.i = i++;return temp;}void Display(){cout << "i = " << i << endl;} };int main() {Check obj1,obj;obj.Display();obj1.Display();obj1 = ++ obj;obj.Display();obj1.Display();obj1 = obj++;obj.Display();obj1.Display();return 0; }運行結(jié)果:
exbot@ubuntu:~/wangqinghe/C++/20190808$ ./addOver
i = 0
i = 0
i = 1
i = 1
i = 2
i = 1
?
遞減和遞增運算符重載:
轉(zhuǎn)載于:https://www.cnblogs.com/wanghao-boke/p/11326019.html
總結(jié)
- 上一篇: 第二代试管婴儿怎么做的全过程
- 下一篇: 黄体功能不全有什么症状表现