以下程序
void display(const int& a)
{
cout << a ;
}
如果用这样的文字调用将起作用
display(5);
但没有 const
它不会工作。
那么 const
引用如何继续指向 R 值(匿名变量)?
原文由 Mekacher Anis 发布,翻译遵循 CC BY-SA 4.0 许可协议
以下程序
void display(const int& a)
{
cout << a ;
}
如果用这样的文字调用将起作用
display(5);
但没有 const
它不会工作。
那么 const
引用如何继续指向 R 值(匿名变量)?
原文由 Mekacher Anis 发布,翻译遵循 CC BY-SA 4.0 许可协议
将任何对象想象为内部包含一些值的 _盒子_,盒子可能有也可能没有名称标签,即名称标签为 variable
的框 和 没有 名称标签的框为 literal
.无论名称标签是否存在, 我们都有盒子。
Reference
是我们在盒子中添加名称标签的方式。
int a = 5;
int &b = a;
我们的盒子有 两个 名称标签(里面有值 5
)。
const int &c = 5;
你在那里,盒子刚刚命名。
以前从未有过名字的盒子的新名字必须标记为 const
。因为盒子里面的值可以通过它的名字来改变,我们不希望它发生 (不允许发生) 到我们的 literal
盒子。
原文由 Sithideth Bouasavanh 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答1.3k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
4 回答832 阅读
1 回答907 阅读
1 回答940 阅读
1 回答707 阅读
1 回答809 阅读
对于你的最后一个问题:
这是答案。 C++ 语言说,本地 const 引用会延长临时值的生命周期,直到包含范围结束,但可以节省复制构造的成本(即,如果您要使用局部变量)。