にしし ふぁくとりー(西村文宏 個人サイト)

Presented by Nishishi via Movable Type. Last Updated: 2015/09/22. 13:24:33.

C++で引数を省略できる関数を作るには

C++では、引数を省略可能な関数を作ることができます。
方法は簡単で、関数のプロトタイプ宣言で、引数にデフォルトの値を付けて定義するだけ。例えば、次のような感じで。

void Hogehoge(int Col=0, int Row=0);

上記のHogehoge関数は、2つの引数(Col,Row)を取りますが、どちらも省略できます。省略した場合、上記の例だと、0を指定したことになります。

なお、引数を1つだけ指定した場合は、最初の引数に値を指定したと解釈されるので注意が必要です。
上記のHogehoge関数は、次のような引数を使った呼び出しの種類があります。

Hogehoge();
Hogehoge(123);
Hogehoge(123, 456);

最初は引数をどちらも省略した場合。2つ目は、後ろの引数(Row)のみ省略した場合、3つ目は両方の引数を指定した場合です。
この関数の場合、最初の引数(Col)を省略して、最後の引数(Row)のみを指定することはできません。

例えば、以下のような呼び出しはエラーになります。

Hogehoge( , 456);

一見このように(第1引数を省略)書けそうな気もしないでもないのですが、このような書き方はできません。

また、「省略可能な引数」と「省略不可な引数」が混在した関数を作ることもできます。ただし、その場合、「省略不可な引数」を先に定義しなければなりません。例えば次のような感じです。

void Hogehoge(int Num, int Col=0, int Row=0);

上記の例では、引数「Num」は省略不可です。引数「Col」と「Row」は省略できます。これを次のように記述することはできません。

void Hogehoge(int Col=0, int Row=0, int Num);

これはエラーになります。必ず、省略できない引数を最初に記述しなければなりません。

コメント

コメント数: 0件

コメント投稿欄 この日記に対するコメント投稿を歓迎します。

保存しますか?



※本文中にURLは書けません。(書くと投稿が拒否されますのでご注意下さい。)

※投稿内容は、実際にページ上に掲載される前に、管理者によって確認される設定にしている場合があります。その場合は、投稿後にその旨が表示されます。たいてい1~2日以内には表示されるはずですので、気長にお待ち願います。m(_ _)m

トラックバック

このエントリーへのトラックバックURLを表示するにはここをクリック
※スパム防止のため、トラックバックURLは別ウインドウで表示します。(JavaScriptが有効でないと表示されません。)

--- 当サイト内を検索 ---