繁体   English   中英

为什么我需要将默认引用参数定义为 const 以便我可以为其分配左值? [复制]

[英]Why I need to define a default reference parameter as const so that I can assign a lvalue to it? [duplicate]

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

我用默认参数定义了一个 function:

void resize(size_t n, std::string &s = std::string()); // error: initial value to non-const must be lvalue 

正确的路:

void resize(size_t n, const std::string &s = std::string());

我想知道为什么const会有所作为?

我知道可以为const变量分配左值。 他们是同一个问题吗?

const int a = 42;

添加过载。 这是最简单,最容易解决的方法。

void resize(size_t n, std::string &s); 
//add overload
void resize(size_t n)
{
    std::string s;
    resize(n, s);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM