首页 > 解决方案 > C++ - 对象何时被销毁

问题描述

我有一个类作为用于测试的临时目录的句柄。它是这样使用的:

{
    TestArea ta("name_of_test");
    ta.call_method( );
    test_stuff( );
    ...
}

}达到关闭时,ta变量超出范围,一切都被清理干净。在许多情况下,我不需要调用任何TestArea方法——这就足够了:

{
    TestArea("name_of_test");
    test_stuff();
}

即没有与TestArea实例关联的左值。现在我的问题是 - 什么时候会TestArea在这个地方调用析构函数?后一个代码实际上似乎有效 - 但我对此有点不安。

标签: c++rvalue

解决方案


TestArea("name_of_test");

您创建一个临时对象,该临时对象将立即被破坏。

因此,一旦使用它的表达式结束,则该对象不再存在。


推荐阅读