这个问题已经在这里有了答案:




11年前关闭。






是否可以做这样的事情:

// definition
bool MyFun(int nMyInt, char* szMyChar, double& nMyReferencedDouble = 0.0);

然后可以像下面这样调用该函数:
MyFun(nMyInt, szMyChar, nMyReferencedDouble);

或像这样:
MyFun(nMyInt, szMyChar);

我的编译器(VS 98)提示。有没有办法做到这一点?

最佳答案

您可以改为重载该函数。

// Definition
bool MyFun(int nMyInt, char* szMyChar, double& nMyReferencedDouble);

// Overload
bool MyFun(int nMyInt, char* szMyChar)
{
    double nMyReferencedDouble = 0.0;
    MyFun( nMyInt, szMyChar, nMyReferencedDouble );
}

这就是您如何绕过 C# 中没有默认值的当前限制,并且同样适用于 C++ 中的语义限制。

关于c++ - C++ 中具有默认值的函数的引用参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2094154/

10-11 05:03