gpt4 book ai didi

c++ - 什么是必要的 const 关键字

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:15 26 4
gpt4 key购买 nike

我的代码无法编译。

int foobar()
{
// code
return 5;
}

int main()
{
int &p = foobar(); // error
// code

const int& x = foobar(); //compiles
}

为什么添加关键字const可以使代码通过编译?

最佳答案

在 C++ 中,临时对象不能绑定(bind)到非常量引用。

 int &p = foobar(); 

右值表达式 foobar() 生成一个不能绑定(bind)到 p 的临时值,因为它是一个非常量引用。

 const int &x = foobar();

将临时对象附加到 x 这是对 const 的引用可延长其生命周期。这是完全合法的。

关于c++ - 什么是必要的 const 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5822401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com