土曜日, 3月 15, 2008

C++解説17(デフォルト引数)

C++にはデフォルトパラメータという機能があります。
これは引数が与えられなかった場合、
デフォルト定義したパラメータが与えられたとして動く機能です。
また引数として省略できるのは後半のパラメータです。

Add(int &lhs, int rhs = 1);

この関数Addはlhsにrhsの値を加算する単純な関数ですが
もしrhsである第2引数を省略した場合
1を加算する関数になります。

int main(void) {
int i = j = 2;

Add(i, j); // 2+2
Add(i); // 4+1
}

1回目のAddは引数の省略がないため
そのまま値が使われ「2+2」となり
2回目のAddは第2引数省略となっているため
第2引数にはデフォルト引数である「1」が使用される。

Add(int &lhs, int rhs = 1);
Add(int &lhs, int rhs = 2);
もちろん、これはエラーである。
Addを使用した時にどちらを呼び出せば良いか
分からなくなるからです。

今回はちょっとした事ですが、意外と重宝できる機能ですので
照会してみました。

0 件のコメント: