gpt4 book ai didi

c++ - 为什么 "most important const"必须是 const?

转载 作者:IT老高 更新时间:2023-10-28 12:53:33 26 4
gpt4 key购买 nike

http://herbsutter.com/2008/01/01/gotw-88-a-candidate-for-the-most-important-const/它提到了“最重要的 const”,其中 C++ 故意指定将临时对象绑定(bind)到堆栈上对 const 的引用将临时对象的生命周期延长到引用本身的生命周期。我想知道为什么 c++ 只允许在引用为 const 时延长对象的生命周期,而不是在不是时延长对象的生命周期?该功能背后的原因是什么?为什么它必须是 const?

最佳答案

这是一个例子:

void square(int &x)
{
x = x * x;
}

int main()
{
float f = 3.0f;

square(f);

std::cout << f << '\n';
}

如果临时对象可以绑定(bind)到非 const 左值引用,那么上面的代码会顺利编译,但会产生相当令人惊讶的结果(输出的是 3 而不是 9)。

关于c++ - 为什么 "most important const"必须是 const?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23063211/

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