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