c++ - C++ 中具有默认值的函数的引用参数

标签 c++ visual-c++ arguments

<分区>

Possible Duplicate:
Default value to a parameter while passing by reference in C++

是否可以这样做:

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

然后函数可以这样调用:

MyFun(nMyInt, szMyChar, nMyReferencedDouble);

或者像这样:

MyFun(nMyInt, szMyChar);

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

最佳答案

因为您只能将临时对象绑定(bind)到 const 引用和常量表达式默认参数转换为临时对象,您只能使用 const 的参数来执行此操作引用。

但是,您可以重载该函数,并让不采用引用的函数创建一个本地命名对象,并将其传递给采用额外引用参数的重载。

实际上,我所说的并不完全正确。默认参数类似于参数的初始值设定项,因此如果您有合适的非 const double 可用,则可以将其绑定(bind)到引用参数。

例如

extern double dflt;
bool MyFun(int nMyInt, char* szMyChar, double& nMyReferencedDouble = dflt);

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

相关文章:

c++ - C/C++ 中的跨平台通用文本处理

c++ - 从 C++ 调用 awk 脚本在 "bozo :wait_for"停止

c++ - C++ 中的外部链接

visual-c++ - 如何解码全速率 GSM 音频文件?

c++ - 如何在需要自由函数的地方传递成员函数?

c++ - 如何创建特定大小的 unordered_map?

c++ - 如何验证另一个程序的窗口是否最小化?

visual-c++ - fatal error C1083 : Cannot open include file: 'omp.h' : No such file or directory

JavaScript:将未知数量的参数从一种方法传递到另一种方法

c - 参数未传递给 c 内核中的函数