首页 >后端开发 >C++ >C 中的临时函数参数何时被销毁?

C 中的临时函数参数何时被销毁?

Linda Hamilton
Linda Hamilton原创
2024-12-16 09:42:12473浏览

When Are Temporary Function Arguments Destroyed in C  ?

临时函数参数:销毁时机

当创建临时对象作为函数参数时,管理它们的生命周期对于程序的正确性至关重要。 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn