微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有默认值的 const 引用参数

如何解决具有默认值的 const 引用参数

我有一个带有构造函数的类,该类将另一个结构作为参数,并且具有认值。像这样:

class A
{
public:
A(someStruct st = someStruct::defaultStruct());
};

我在我的代码上运行了一个静态分析器,它说这个参数应该是 const ref。但它有点参考临时文件,虽然我正在将它复制到构造函数中,但我仍然很困惑我是否应该使用 const ref。

someStruct::defaultStruct() 类似于

static someStruct someStruct::defaultStruct()
{
    return { 0,0 };
}

解决方法

Analyzer 说它必须是 const&,因为 someStruct::defaultStruct() 返回一个临时值。你需要这样的代码:

A(const someStruct& st = someStruct::defaultStruct());

因为只有 const& 可以绑定到临时作为参数的默认值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。