2012-02-15 1 views
0

私はC++で記述された機能があります。新しい、シグニチャ定義

foo (IN bool someMode = false) 

をそれが何を意味するのでしょうか? someModeは常にfalseに初期化されますか?たとえfooがtrueで呼び出されたとしても?

答えて

3

それはfooは一つの引数を取るにもかかわらず、あなたは、任意の引数を渡すことなく、この関数を呼び出すことができます意味:あなたはこのように呼び出すとそれがどのようなそのあるとして、その後、someMode値は、falseなります

foo(); //ok 

デフォルトはです。関数シグネチャ内のsomeMode = falseは、引数が渡されない場合、someModefalseになります。プログラミングでは、そのようなパラメータはデフォルトパラメータであると言われており、このコンテキストではfalseデフォルトのの値と言われています。お電話の場合は、基本的に、あなたはそれを省略することができ、

foo(false); //ok 
foo(true); //ok 
+1

素晴らしいように!あなたの助けをたくさんthakns! – adisar86

0

そのデフォルトパラメータ:

foo(); 

その後、someModeまだはあなたが望むなら

しかし、あなたは引数を渡すことができます存在する場合はfalseに設定しますが、電話する場合は

foo(true); 

となり、someModeはtrueになります。

+0

すぐに返信いただきありがとうございます! – adisar86

0

通常、INは何もしないマクロであり、引数が関数への入力であることを知らせるだけなので、実際にはfoo(bool someMode=false)です。あなたが残しているのはデフォルトの引数です。これは、このようなコードを呼び出すことができます意味:

foo(true); // Here someMode=true 
foo(false); // Here someMode=false 

またはこの

foo(); // Here someMode=false 
+0

ありがとうマイケル!!迅速な対応を感謝します! – adisar86

関連する問題