临时函数参数的生命周期
当创建临时对象作为函数的参数时,标准保证将调用其析构函数在包含函数调用的完整表达式的末尾。
详细说明
当函数参数是计算结果为对象的表达式时,将创建临时对象。在提供的示例中,MyClass(42) 是一个临时对象。
临时对象的生命周期一直延伸到它们所属的完整表达式的末尾。完整表达式通常以分号 (`;) 结尾,分号 (`;) 结束包含该表达式的语句。在这种情况下,完整表达式以 myFunction() 函数调用的右括号结束。
因此,在执行到之前,将调用 MyClass(42) 中创建的临时 MyClass 对象的析构函数。函数调用后的下一条语句。
扩展临时生命周期
虽然临时对象通常是短暂的,但可以通过将它们绑定到常量引用来延长它们的生命周期。例如:
const MyClass& r = getMyClass();
在这种情况下, getMyClass() 返回的临时对象将持续到封闭块的末尾,从而将其生命周期延长到完整表达式之外。
以上是临时函数参数能存在多久?的详细内容。更多信息请关注PHP中文网其他相关文章!