在 C 中,将临时对象分配给常量引用是一种常见操作,最初可能会引发有关其生命周期的问题
问题:
为什么下面的代码有效并且不会导致编译器错误?
<code class="cpp">string foo() { return string("123"); } int main() { const string& val = foo(); printf("%s\n", val.c_str()); return 0; }</code>
答案:
C 明确定义将临时对象绑定到基于常量堆栈的引用可延长临时对象的生命周期以匹配引用的生命周期。在这种情况下, foo() 返回的临时对象一直存在到 main() 函数结束。
说明:
注意:
以上是为什么在 C 中将临时对象绑定到常量引用可以延长其生命周期?的详细内容。更多信息请关注PHP中文网其他相关文章!