1

この関数fun(t1、t2、t3)を取得し、fun(v1、v2)で呼び出した場合、v3のデフォルト値を取得することはできますか?boolがfalse、ポインタがnull、intが0など。または、コンパイラエラーが発生する必要がありますか?

4

2 に答える 2

1

次のように宣言します。

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

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

于 2012-04-19T11:14:33.640 に答える
1

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

プロトタイプを変更できない場合は、自分でオーバーロードできます。

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

または、変更できる場合は、次のようにパラメータのデフォルトを宣言できます。

void fun (bool t1, bool t2, bool t3 = true)
{ 
}
于 2012-04-19T11:14:36.687 に答える