Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用默认参数调用函数?_C++ - Fatal编程技术网

C++ 如何使用默认参数调用函数?

C++ 如何使用默认参数调用函数?,c++,C++,我在头文件中定义了一个函数,如下所示: int myfunction(VpTR*& viewporttable, wchar* vpname=L"*Active", OpenMode f=fR); 如何调用此函数而忽略第二个参数? 我尝试用以下代码调用它,但出现了一条错误消息:需要一个表达式 myfunction(myviewporttable,, fR); 我可以省略这个参数,但它仍然将L“*Active”理解为被调用的值吗?语法不允许省略任意位置的参数值,只

我在头文件中定义了一个函数,如下所示:

int myfunction(VpTR*& viewporttable,  wchar* vpname=L"*Active", OpenMode f=fR);
如何调用此函数而忽略第二个参数? 我尝试用以下代码调用它,但出现了一条错误消息:需要一个表达式

myfunction(myviewporttable,, fR);

我可以省略这个参数,但它仍然将L“*Active”理解为被调用的值吗?

语法不允许省略任意位置的参数值,只允许省略列表末尾的参数值

您必须重载2个版本:

int myfunction(VpTR*& viewporttable,  OpenMode f=fR) {
    return myfunction(viewporttable,L"*Active",L"*Active",f);
}

int myfunction(VpTR*& viewporttable,  wchar* vpname=L"*Active", OpenMode f=fR);
然后你可以打电话

myfunction(myviewporttable, fR);

你不能。C++没有命名的参数支持其他语言,所以你不能忽略任何参数,你仍然可以用参数调用它:MyFoeLoad(MyVIEWTABLE,L)*活动,“FR”,使帮助转发函数<代码> int MyStalm(VPTR*VIEWPATABLE,OpenMODE F){MealMyType(VIEWPATABLE,L * *活动,F);}<代码>谢谢大家我的问题解决了!