[英]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.