繁体   English   中英

当这个临时 object 被破坏时?在进入之前 function 还是在 function 返回之后?

[英]When this temporary object is destoryed?Before entry the function or after the function returned?

当这个临时对象( CTest() )被销毁时?在进入函数之前( fooFunc )还是在函数( fooFunc )返回之后?

我知道下面的代码确实不正确(谢谢,asmmo。)。 原因是:

“这个想法是 function 采用非常量引用参数表示它想要修改参数并允许它 go 返回给调用者。临时这样做是没有意义的,很可能是错误。”

对于这个问题的任何提示,我将不胜感激。

class CTest;
void fooFunc(CTest&){};
fooFunc(CTest());

临时对象在完全表达结束时被销毁。 在您的情况下,这意味着CTest()将在fooFunc返回后被销毁。

请注意,您的示例格式错误。 fooFunc的参数应该是右值引用或 const 左值引用。 假设您使用 Visual Studio。 传递/W4标志,因此 VS 将发出警告,说明您使用了非标准扩展(因此您知道您使用的东西不会为其他编译器编译)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM