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

Presented by Nishishi via Movable Type. Last Updated: 2017/06/21. 12:30:10.

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は書けません。(書くと投稿が拒否されますのでご注意下さい。)

※ご投稿頂いた内容は、掲載前に管理者が確認する設定にしている場合があります。たいていは数日以内には表示されるはずですので、気長にお待ち願います。m(_ _)m

著者紹介


にしし(西村文宏)

にししでございます。本書いたり記事書いたりしてます。あと萌えたり。著書5冊発売中です(Web製作系4冊+小説1冊)。著書や記事は「西村文宏」名義。記事は主にAll Aboutで連載。本の最新刊は2011年3月に発売されたライトノベルでございますよ。

Twitter:にしし/西村文宏
にしし/西村文宏 on facebook にしし/西村文宏 on mixi にしし/西村文宏 on Google+ フォローはお気軽に!

にしし(西村文宏)連絡先
☕ コーヒーをおごる

著書一覧と詳細

関連する記事など

※下記には、本サイト内外の関連記事などが8本くらい自動で表示されています。

にししふぁくとりー Sakura scope内限定での主要なカテゴリ

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