C ++の研究ノート(XI)

関数のオーバーロード(過負荷状態に)

コンセプト

オーバーロード機能が特殊なケースであり、使いやすさのために、同じ範囲と同様の機能が、これらのパラメータの形式の関数と同じ名前で同じ名前のいくつかの機能を可能にするC ++のステートメントは、(パラメータの数、種類または順序を参照)異なる必要があります、それは、同じ機能と異なる機能を実行します。これは、関数をオーバーロードされます。

オーバーロードされた関数は、関数を実装するために使用されるなどの問題を処理する異なるタイプのデータです。異なる種類のだけでなく、関数の戻り値。

同じ名前の複数の機能があることが、異なるパラメータの彼らのリスト:理解しています。

フォーム

として

void fun(int );
void fun(float,float);

我々は同じコード名を戦うが、コンパイル時にコンパイラは、彼らが署名を追加しながら、名前を変更します。

上記の例では、コンパイル時に名前を変更します:

fun_int(int );
fun_float_float(float ,float);

これは、原則として関数のオーバーロードです。

コンパイラは最初のオーバーロードされた関数の名前が変更されますときに。

これは、オーバーロードの解像度と呼ばれています。

用途:
あなたは計算のデータ型のさまざまなを解決することができますので、自動マッチングシステムとしてのオーバーロード関数は、多くのプリセット機能、呼び出す多くの問題、悪いコールやその他の問題を解決するために使用することができます。

ご注意ください

例:

void fun(int a);
void fun(int& ra);

これら2つのパラメータは、身体への参照に相当するので、まったく同じに渡されるので、コンパイラは、この関数をオーバーロードされると言うことができないと文句を言うだろう。

デフォルトパラメータ

コンセプト:

関数呼び出しをする場合、引数の値が自動的に省略されたときに、デフォルトのパラメータを参照。例えば、WOW空隙を(int型n)はnに1のデフォルト値が提供されている場合、WOW関数を呼び出す()に対応する(1)WOWへ。これは大幅に機能を使用するための柔軟性を増大させます。

使い方

void fun(int a=1, int b=3, int c=5);
あなたはそれを、それはデフォルトパラメータを使用する任意の引数を与えないことを宣言するときにこのように、我々は、この機能を参照してください。

注意:

1.デフォルトのパラメータは、関数宣言に一度だけ設定することができます。何の関数宣言は関数定義でのみ設定できない場合のみです。

2.右から左に定義されたデフォルトのパラメータの順序。つまり、パラメータ設定のデフォルト値ならば、その右側の引数はデフォルト値を持っている必要があります。

バイコール左から右へ3.デフォルトの引数は、引数は、呼び出しシーケンスに従います。これは混同しないでください、それはポイント2にクリアすることです。

おすすめ

転載: www.cnblogs.com/147258369k/p/12288393.html