2012-04-19 12 views
1

fun(t1、t2、t3)、fun(v1、v2)で呼び出すと、v3のデフォルト値を得ることは可能ですか? ? boolがfalse、ポインタがnull、intが0などのようなものですか?それはコンパイラエラーを引き起こすでしょうか?パラメータの暗黙のデフォルト値は?

答えて

1

関数がオーバーロードされていないと、コンパイラエラーが発生します。

void fun (bool t1, bool t2) 
{ 
    fun (t1,t2, true); //or whatever 
} 

をしたり、それを変更することができれば、あなたはこのようなパラメータのデフォルトを宣言することができます:

あなたはプロトタイプを変更できない場合は、自分をオーバーロードすることができます

void fun (bool t1, bool t2, bool t3 = true) 
{ 
} 
+0

ええ、ありがとう、それは私が恐れていたものです。私が見つけたこの「暗黙のデフォルトパラメータ値」のこの発生は、私がかなりうまくいったことです。その部分はコンパイルされていないことが分かった。 ;) – user1130005

1

はこのようにそれを宣言します。

void fun (Foo t1, Bar t2, bool t3 = false) 
{...} 

あなたは=と値を入れると何も提供されていない場合、そのパラメータはデフォルト値を獲得します。ただし、パラメータリストの右側から使用する必要があります。

関連する問題