overrideキーワード

https://www.cnblogs.com/xinxue/p/5471708.html

2オーバーライド(上書き)

  エラーを回避するために、1.2.2で述べたoverrideキーワードは、派生クラスの仮想関数を忘れて書き換えます

  仮想関数をオーバーライドするには、次の4つのエラー、例を作るのは簡単、細部

コードをコピー
クラスBase { 
パブリック:
    仮想ボイドMF1()constは、
    仮想ボイドMF2(int型x)は; 
    仮想ボイドMF3()&; 
    空MF4()constは、//は、Baseの仮想宣言されていません
}; 

派生クラス:公衆基地{ 
パブリック:
    仮想ボイドMF1()。// Baseのconstとして宣言しますが、派生ありませんで。
    仮想ボイドMF2(unsigned int型のX); //は基本のintがかかりますが、派生ではunsigned int型
    &&)(仮想ボイドMF3。//左辺値修飾Baseのが、右辺値修飾派生です。
    空MF4()constは、        
}。
コードをコピー

  派生クラスでは、オーバーライド(上書き)実現(実装)Chengziチクラスのメンバ関数に続いて、以下の条件を満たします:

  仮想ベースクラスのメンバ関数が仮想宣言されている(仮想)

  二つの受信:例外仕様(例外仕様)は互換性がなければならない基本クラスと派生クラス、型、およびメンバ関数を返します

  四つのベースクラスと派生クラス、メンバ関数名、パラメータ・タイプ、定数属性(const性)と参照修飾子(参照修飾子)が同一でなければなりません

  だから、条件を制限し、上記のように非常に簡単かつ不注意なミス以来、コードを書き換える仮想関数の結果

  overrideキーワードでC ++ 11には、明示的に派生クラス内で宣言することができ、書き換えられない場合メンバ関数は、書き換えられるために必要なものを、コンパイラが文句を言うでしょう。

コードをコピー
派生クラス:公衆基地{ 
パブリック:
    仮想ボイドMF1()オーバーライド。
    仮想ボイドMF2(unsigned int型x)をオーバーライド。
    仮想ボイドMF3()をオーバーライド&&。
    仮想ボイドMF4()constはオーバーライド。
}。
コードをコピー

  このように、誤って仮想関数の書き換えの過酷な条件を残していても、またはコンパイラを与えられていることで、素早く正確なミス

コードをコピー
派生クラス:公衆基地{ 
パブリック:
    仮想ボイドMF1()constのオーバーライド。//「仮想」を追加する必要がOKではなく、
    仮想ボイドMF2(int型x)をオーバーライド。
    MF3を無効()&上書きします。
    空MF4()constはオーバーライド。
}。
コードをコピー

 

要約:

1)   公共の継承

  純粋仮想関数=>継承がある:インターフェイス(インターフェイス)

  :一般的な仮想関数=>継承は、あるインタフェースおよびデフォルト(デフォルトの実装)を達成します

  非仮想メンバ関数=>継承され:インタフェースと強制(必須実装)

2)リレーChengzi智クラス非仮想関数を再定義しないでください (再定義することはありません  継承仮想非機能)

3)関数宣言を書き換える必要がある後、キーワードの追加  オーバーライドを

おすすめ

転載: www.cnblogs.com/xiangtingshen/p/11089118.html