C++友元函數重載"++"和"--"運算符


代碼:

 1 #include <iostream>
 2 #include <cstring>
 3 
 4 using namespace std;
 5 
 6 class one{
 7     public:
 8         one(int i);
 9         void print();
10         friend one operator++(one&);
11         friend one operator++(one&,int);
12 
13     private:
14         int i;
15 };
16 
17 one::one(int I){
18     i = I;
19 }
20 
21 void one::print(){
22     cout<<"i="<<i<<endl;
23 }
24 
25 one operator++(one &op){
26     ++op.i;
27     return op;
28 }
29 
30 one operator++(one &op,int){
31     one temp(op);
32     op.i++;
33     return temp;
34 }
35 
36 int main(){
37     one obj1(1),obj2(100);
38     obj1.print();
39     (++obj1).print();//隱式調用
40     (obj1++).print();
41     obj1.print();
42 
43     (operator++(obj2)).print();//顯式調用
44     (operator++(obj2,1)).print();//此處的參數1可以取任意整數(int)
45     obj2.print();
46 
47     return 0;
48 }

輸出:

i=1
i=2
i=2
i=3
i=101
i=101
i=102

 分析:

前綴方式和后綴方式重載函數不同,以參數int區分


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM