2012-04-15 10 views
-1

私は、現在の署名がf(a、b = 0)である関数を持っています。別の引数を追加したい。このような方法で私の機能を欲しいので、私はf(a、b)を呼び出すことができます。これは現在の動作であり、f(a、c)です。 1つの方法は、関数をオーバーロードして関数コードを複製することです。私はf(a、b)をf(a、c)から呼びたくはありません。私はC++で働いています。デフォルトの引数関数のシグネチャの変更

このコードの重複を避けるための標準的なデザインパターンまたは解決策はありますか?

+3

私には意味がありません... –

+0

それは私のためではありません...なぜあなたの関数に3つの引数がありますか? –

+1

同じ名前の2つの関数が同じ型を持ちますが、異なる動作をしたいですか? – dreamlax

答えて

6

私はあなたに従いますが、あなたは、この上のバリエーションを使用することができ、完全にはよく分からない。何のコードが重複していないことを

void f(int a, int b=0, int c=0); 
void f2(int a, int c=0) { f(a, 0, c); } 

は注意してください。そして今では、最初の関数を呼び出すが、2番目の引数ではなく3番目の引数を指定できる別の関数があります。

関連する問題