c++のデフォルトパラメータを含む関数

1124 ワード

デフォルトパラメータを含む関数とは、関数のパラメータがアクティブiに値を割り当てない場合にデフォルト値を含むことを意味します.つまり、自分が事前にパラメータ値を設定し、関数のパラメータを指定した後、関数に値を割り当てなければ、事前に設定した関数が呼び出されます.
具体的には,デフォルトパラメータがある場合,実パラメータが伝達されていない場合にはデフォルトパラメータが用いられる.
#include
using namespace std;
int add(int num1 = 3,int num2 = 4);
int main()
{
	int res = add();
	cout<
  • 本プログラムでは,宣言時にnum 1=3,num 2=4を予め付与し,この関数を主関数が呼び出すときadd()は,具体的な値をまったく指定していないが,出力された結果,7,正式以前に予め設定された値である.
  • 実パラメトリックの1つのパラメータを指定すると、最初のパラメータnumの値が自動的に上書きされます.このときnum=4、num 2=4であると、add関数のパラメータリストに値を付与する順序が左から右へ順に値を付与上書きされていることがわかりますので、パラメータをプリセットしたい場合は右から左へ順にパラメータのプリセット設定を行う必要があります.また、真ん中にパラメータを1つも空けることはできません.
  • 実際に関与するパラメータの結合は左から右であり、デフォルト値を指定するパラメータは右から左であり、真ん中にパラメータを空けてはいけない.そうしないと、エラーが発生する.
  • 関数の定義が関数呼び出しの前であれば、関数の一番上のリストにデフォルト値を吹き付け、関数の定義が関数呼び出しの後であれば、関数呼び出しの前の関数宣言にデフォルト値を与え、関数定義の際にデフォルト値を与えなくてもよい.すなわち、関数呼び出しの前にデフォルト値の情報をコンパイルシステムに通知する.
  • 関数宣言時にパラメータにデフォルト値が与えられ、関数定義時にパラメータにデフォルト値が与えられた場合.関数が宣言されたときに基準となり、定義された関数のデフォルト値は無視されます.(本にはこう書いてありますが、v 2015環境でコンパイルエラー)
  • 関数宣言時にデフォルト値が与えられず、関数定義時にデフォルト値が与えられた場合、プログラムはエラーを報告します.