C ++関数のオーバーロードの研究ノートレッスンエイト

研究ノートの内容から:Ditaiソフトウェア・カレッジTangzuo林先生のビデオ、私はあなたの指導に感謝します

条件をオーバーロード機能:

  1. 異なるパラメータの数
  2. 異なる順序パラメータ
  3. 異なる引数の型

オーバーロードされた関数へのいずれかの条件に沿って、

コンパイラはオーバーロードされた関数の基準を呼び出します。

候補の関数と同じ名前の1.すべての
実行可能な候補機能を見つけるために2トライ
(1)は、正確に、引数と一致する
デフォルトパラメータ引数の試合で(2)
デフォルト引数タイプコンバータ照合することによって(3)
3.関数の戻り値の型をない基底関数のオーバーロードなど

マッチは失敗します
。1.は最終的に候補者は、あいまいさが発生するが、コンパイルに失敗する唯一の機能ではありませんがわかりました。例えば:

int func(int a,int b,int c=0)
{
  return a*b*c;
}

int func(int a,int b)
{
  return a+b;
}

(1、2)FUNCを呼び出したときにあいまいさが発生し、コンパイルが失敗します。
2.すべての候補が一致しないことができ、関数が定義されていない、コンパイルが失敗します。

PS:オーバーロード関数間時のアドレス・住所と同じではない、機能とは無関係です

公開された15元の記事 ウォンの賞賛0 ビュー102

おすすめ

転載: blog.csdn.net/u012321968/article/details/104450135