gpt4 book ai didi

C++ const 绑定(bind)到临时对象

转载 作者:行者123 更新时间:2023-11-30 00:45:56 26 4
gpt4 key购买 nike

考虑以下代码:

 class Abc
{
public:
Abc() { std::cout << " ABC::ABC\n"; }
Abc& doIT() { std::cout << " Abc::doIT\n"; return *this; }
~Abc() { std::cout << " ABC::~ABC\n"; }
};

用法:

const Abc& ap = Abc().doIT(); //After this line ap references garbage

我的问题是为什么 temp Abc 被销毁而不绑定(bind)到 ap ?

最佳答案

仅当您直接将引用绑定(bind)到纯右值时才会发生生命周期延长。
在您的情况下,表达式 Abc().doIT() 的类型是 Abc& (左值引用),而不是 Abc
这不是纯右值,因此生命周期延长不适用。

关于C++ const 绑定(bind)到临时对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40934700/

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