You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何C++临时对象调用成员函数后提前析构?求编译器行为解析

临时对象生命周期延长的疑问

我编写了如下代码,对Test类的临时对象调用链式成员函数:

const auto &t2 = Test().withT1().withT2();
testParam(t2);

这段代码中,调用withT1()和withT2()后,临时对象会立即析构,导致传入testParam的t2指向已析构的对象。

但如果直接将临时对象绑定到引用,不调用这些成员函数:

const auto &t2 = Test();
testParam(t2);

临时对象会被正确绑定到引用t2,其生命周期会延长至当前块作用域结束。

恳请帮忙解释编译器为何会有这样的行为?

内容的提问来源于stack exchange,提问作者51k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 19:02:03