関数の引数に省略可能な引数を設定する事ができます。
省略可能な引数を持った関数を呼び出す時は、
その省略可能引数の部分を指定しなかった場合は、
あらかじめ設定されているデフォルト値が適用されます。
#include <iostream>
using namespace std;
int tasizan(int a, int b, int flg = 0);
void main(void) {
int ans_tasizan = 0;
ans_tasizan = tasizan(20, 5); // 第3引数を省略
cout << ans_tasizan << '\n';
ans_tasizan = tasizan(20, 5, 1); // 全ての引数を指定
}
このプログラムは、足し算結果を表示するプログラムです。
関数tasizanは、足し算結果を求める関数です。
また、オプション機能として、
第3引数flgの値により、足し算結果の表示も可能です。
関数tasizanには、省略可能引数flgが設定されています。
引数flgの値を指定せずに関数tasizanを呼び出すと、
引数flgには、関数tasizanのプロトタイプ宣言で指定したデフォルト値が
代入されます。この場合は、0が代入されます。
また、普通に第3引数を指定して呼び出すと、
通常通りに引数が渡されます。
省略可能引数を用いる場合に注意する点があります。
1.むやみに省略可能引数を使わず、無理なく自然に使用する事。
2.省略可能引数は、引数並びの一番後ろの部分に持ってくる事。
int tasizan(int a, int b, int flg = 0); // 問題なし。
int tasizan(int a, int b = 5, int flg = 0); // 問題なし。
int tasizan(int a = 3, int b = 5, int flg = 0); // 問題なし。
int tasizan(int a, int b = 5, int flg); // エラー。