C++ 無名の引数について

関数の引数名を無名にする事ができます。

無名にするので、関数内でその無名の引数は使えませんが、
将来の拡張性としての使い道があります。

今はこの引数は使わないものの、
バージョンアップでこの引数を使うかもしれない。

という時などに有効です。

使わない無名の引数の説明として、

「常に0を指定して下さい。」等と書いておけば問題ありません。

また、普通に名前付きの引数として使っても問題ありません。

#include <iostream>

using namespace std;

int tasizan(int a, int b, int);      // 第3引数が無名

void main(void) {
      int ans_tasizan = 0;

      ans_tasizan = tasizan(20, 5, 0);

      cout << ans_tasizan << '\n';

}

他の使い方としては、
関数の多重定義(オーバーロード)があった場合に、

無名の引数によって呼び出す関数を区別する。

と言った使い方もできます。

int keisan(int a, int b);
int keisan(int a, int b, int);

void main(void) {
      int ans = 0;

      ans = keisan(20, 5);      // 足し算

      ans = keisan(20, 5, 1);      // 引き算

}

int keisan(int a, int b) {
      return a + b;
}

int keisan(int a, int b, int) {
      return a - b;
}

このプログラムの場合、関数keisanが2つ多重定義されていますが、
第3引数の有無によって区別されるようになっています。

ない場合は、足し算用の関数keisanが呼ばれ、
ある場合は、引き算用の関数keisanが呼ばれます。

タイトルとURLをコピーしました