研究ノートの内容から:Ditaiソフトウェア・カレッジTangzuo林先生のビデオ、私はあなたの指導に感謝します
条件をオーバーロード機能:
- 異なるパラメータの数
- 異なる順序パラメータ
- 異なる引数の型
オーバーロードされた関数へのいずれかの条件に沿って、
コンパイラはオーバーロードされた関数の基準を呼び出します。
候補の関数と同じ名前の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:オーバーロード関数間時のアドレス・住所と同じではない、機能とは無関係です