最近我注意到我的一些对象变得非常大,一段时间后我可能不再需要它们了。我可以等到本地作用域结束时析构函数释放内存或使用代码块使用自定义作用域。
但是,我有这样的想法,为每个对象实现一个void MyObject::clear()
清除内存的方法:
class MyObject{
bool is_cleared;
// Other stuff
public:
MyObject();
~MyObject();
void clear();
// Other stuff
};
MyObject::MyObject()
: is_cleared(false)
{
// construct the class
}
void MyObject::clear(){
if (!is_cleared){
// clear memory
is_cleared = true;
}
}
MyObject::~MyObject(){
this->clear();
}
这样我既可以让析构函数清除内存,也可以自己做。这被认为是好的还是坏的做法?我该如何改进它?