単項のオーバーロード

オペランドは減少の一つだけインクリメントされ

過負荷を達成するには2つの方法があります。

一つは、いわゆるメンバ関数のオーバーロードされ、他のオーバーロードフレンド関数であります

私は例えば、最初のバーを始めましょう

単項演算子関数のオーバーロードの一員として、注意することは、引数はありません

Xクラス
{
...
T @演算子(){...};
// T演算子@(X *本)に相当する 。このパラメータは、自動的にシステム・ポインタによって追加された暗黙のパラメータである
};
T戻り型、@オーバーロードされているオペレータ

WOCは、私はこのライブラリの時間、私と同じ名前を書いている時点を知りません。それは、人々はほとんど怒っていたことを実現するために半分の時間を変更しました

1つの#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3  
4  クラス時間
 5  {
 6  プライベート7     INT H、M、S。
8  公共9      時間(int型の時、int型の分、int型秒)。
10      時間&演算子 ++ ();
11      ボイドディスプレイ();
12  
13  }。
14  
15時間::タイム(int型の時、int型の分、INT )第
 16  {
 17      H = 時間。
18      であれば(時間== 24)H = 0 19      、M = 分。
20      もし(m個== 60)、M = 0 21個の      S = 秒。
22      であれば(S == 60)S = 0 23  }
 24  
25  
26時間と時刻:: オペレータ ++ ()
 27  {
 28      ++ S。
29      もし(S ==60 30      {
 31          のS = 0 32          ++ M。
33          もし(m個== 60 34          {
 35              、M = 0 36              ++ H。
37              であれば(時間== 24)H = 0 38          }
 39      }
 40      リターン * この;
41  }
 42  
43  ボイド時間::ディスプレイ()
 44  {
 45     H << << COUT " " << << M " " << S << ENDL;
 46である }
 47  
48  ボイド試験()
 49  {
 50      時間T0(23であり5959 );
 51である     t0.display( );
 52である      ++ T0; // 明示的な呼び出しの
53である     t0.display();
 54である      。T0のオペレータ ++(); // 暗黙の呼び出しの
55      t0.display();
 56である }
 57である 
58  のint main()の
59  {
 60      試験()。
61      リターン 0 62 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/mch5201314/p/11590194.html