デフォルトのパラメータ値を持つ関数と関数のオーバーロード


デフォルト値
の関数1.関数を定義するときに、関数の仮パラメーターに所定の値を設定できます。関数を呼び出すときに、実際のパラメーターが指定されている場合は実際のパラメーター値が使用され、それ以外の場合は事前設定されたデフォルトは次のような使用済みパラメータ値:

void func(int a=3,int b=4)
{
    
    
	cout << a << " " << b<<endl;
}

int main()
{
    
    
	func();//使用默认参数
	func(1, 2);//使用形参
	//结果是3 4 1 2
}

注:
1。デフォルトのパラメーターを含む正式なパラメーターは、正式なパラメーターリストの右端にリストする必要があります。つまり、実際の順序が原因で、デフォルトのパラメーター値の右側にデフォルト値のないパラメーターを含めることはできません。正式なパラメータの組み合わせへの参加は、呼び出し時に左から右に行われます。

int add(int x,int y=5,int z=6);//正确
int add(int x=1,int y=5,int z);//错误
int add(int x=1,int y,int z=6);//错误

2.関数定義の前に関数を呼び出す場合は、関数宣言でデフォルト値を指定する必要があります。このとき、関数定義でデフォルト値を指定する必要はありません。
関数の宣言時にデフォルト値を指定すると、関数の定義時にもデフォルト値が指定されます。コンパイラはエラーメッセージを表示する場合があるため、混乱を避けるために、関数の宣言時にのみデフォルト値を指定することをお勧めします。 。

3.仮想関数がクラス継承で再定義されている場合、仮想関数のデフォルトパラメータは再定義されるべきではありません。仮想関数は動的にバインドされますが、デフォルトのパラメーターは静的にバインドされるためです。

関数のオーバーロード
1.定義
オーバーロードは、静的ポリモーフィズムによって実現されるC ++ポリモーフィズムの重要なメカニズムであり、コンパイル段階で実現されるポリモーフィズムです。
(ちなみに、多形とは、1つの名前で異なる関数を定義することです。これらの関数は、異なるが類似した操作を実行するため、同じ関数名で異なる内容の関数を呼び出すことができます。)

2.関数
C ++を使用すると、類似した関数を持つ関数を同じスコープ内で同じ関数名で宣言できるため、オーバーロードが形成されます。使いやすく、覚えやすい。

3.使用規則
1.関数がオーバーロードされると、関数タイプのみを同じにすることはできず、パラメーター、タイプ、および順序の数はすべて同じになります。
このように関数を定義すると、コンパイラシステムは同じになりません。使用する関数を決定します。

2.関数がオーバーロードされている場合、パラメーターの数、パラメータータイプ、およびパラメーターのシーケンスをすべて同じにすることはできません。
同じオーバーロードされた関数が同じパラメーターで定義された後、コンパイラシステムは使用する関数を決定できません。 。

3.関数がオーバーロードされている場合は、関数を類似または同じに
するようにしてください。プログラムの可読性を向上させ、理解しやすく、読みやすくします。

4.関数は、オーバーロードされた関数とデフォルトのパラメーターを持つ関数の両方にすることはできません。
パラメータが渡されない場合、システムは呼び出すパラメータを決定できません。

おすすめ

転載: blog.csdn.net/qq_43530773/article/details/113786507