首页 >后端开发 >C++ >临时函数参数在 C 中存在多久?

临时函数参数在 C 中存在多久?

DDD
DDD原创
2024-12-27 07:06:17944浏览

How Long Do Temporary Function Arguments Live in C  ?

了解临时函数参数的生命周期

使用实例化为函数参数的临时对象时,如下所示:

class MyClass
{
  MyClass(int a);
};

myFunction(MyClass(42));

了解它们的破坏行为至关重要。 C 标准提供了对其析构函数时间的深入了解。

临时参数的析构时间

临时对象在其所驻留的完整表达式结束时达到其终点。完整的表达式表示一个独立的表达式,而不是嵌套在另一个表达式中。通常,这对应于指定语句完成的分号(或条件、循环和 switch 语句的右括号)。在给定的示例中,完整的表达式以函数调用结束。

延长临时生命周期

值得注意的是,可以通过将临时变量引用为恒定参考。此策略延长了它们的寿命以匹配引用的寿命:

MyClass getMyClass();

{
  const MyClass& r = getMyClass(); // full expression ends here
  ...
} // object returned by getMyClass() is destroyed here

与使用 MyClass obj = getMyClass(); 相比,使用此技术可以通过避免不必要的复制构造函数调用来优化性能。不过,其流行率有点低。

以上是临时函数参数在 C 中存在多久?的详细内容。更多信息请关注PHP中文网其他相关文章!

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