首页 > 后端开发 > C++ > C 函数可以为非常量引用参数提供默认值吗?

C 函数可以为非常量引用参数提供默认值吗?

Susan Sarandon
发布: 2024-11-29 17:54:11
原创
686 人浏览过

Can C   Functions Have Default Values for Non-Const Reference Parameters?

C 中引用参数的默认值

C 中通过引用传递参数时,可以为其指定默认值吗?

考虑以下函数声明:

virtual const ULONG Write(ULONG &State = 0, bool sequence = true);
登录后复制

尝试编译此代码会导致错误:

error C2440: 'default argument' : cannot convert from 'const int' to 'unsigned long &'
A reference that is not to 'const' cannot be bound to a non-lvalue
登录后复制

答案

只能分配默认值常量引用,而不是非常量引用。这是因为 C 禁止将临时值(在本例中为默认值)绑定到非常量引用。

要解决此约束,您可以使用实际实例作为默认值:

static int AVAL = 1;

void f( int &x = AVAL ) {
   // stuff
} 

int main() {
     f();       // equivalent to f(AVAL);
}
登录后复制

但是,这种方法的实际适用性有限。

以上是C 函数可以为非常量引用参数提供默认值吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板