在本地范围内销毁对象

Destruction of object in local scope

本文关键字:对象 范围内      更新时间:2023-10-16

假设我有以下代码:

void foo() {  
 {
    myclass object;
    object.do_something();
 }
 cout<<"hello"<<endl;
}

~myclass()是否保证退出本地作用域时调用,或者是否可以在以后(例如函数返回时)调用?

是的,可以保证:

[class.dtor] 析构函数被隐式调用...在创建对象的块退出时具有自动存储持续时间的构造对象。