我有一个代码:
class A{
public:
void method1 (){
// do something
}
};
class B{
public:
void method2 (){
// do something
}
};
main(int argc, char* argv[])
{
A a ;
a.method1();
// free object a
B b ;
b.method2();
}
Run Code Online (Sandbox Code Playgroud)
现在,在创建b对象之前,我希望释放一个由a占用的内存.任何人都可以帮我怎么做?
您只需要添加额外的范围{,}因为它a是一个自动/本地对象,一旦声明它的作用域结束,它将被自动销毁.
main(int argc, char* argv[])
{
{ //<--------------
A a ;
a.method1();
} //<-------------
B b ;
b.method2();
}
Run Code Online (Sandbox Code Playgroud)
这在C++中也被广泛称为RAII.