临时函数参数:销毁时机
当创建临时对象作为函数参数时,管理它们的生命周期对于程序的正确性至关重要。 C 规定了这些临时对象的生命周期。
在提供的示例中:
class MyClass { MyClass(int a); }; myFunction(MyClass(42));
C 保证在 完整表达式的末尾调用临时 MyClass 对象的析构函数 该对象是其一部分。完整的表达式通常以分号结束;或其他语句终止符。在这种情况下,完整表达式以函数调用 myFunction() 的右括号结束。
因此,您可以假设在执行函数调用后的下一条语句之前将调用临时对象的析构函数.
请注意,通过将临时变量绑定到 const 引用,可以将它们的生命周期延长到完整表达式之外。这会将它们的生命周期延长到引用的生命周期,如下例所示:
MyClass getMyClass(); { const MyClass& r = getMyClass(); // full expression ends here ... } // object returned by getMyClass() is destroyed here
以上是C 中的临时函数参数何时被销毁?的详细内容。更多信息请关注PHP中文网其他相关文章!