最近、いくつかのオブジェクトが非常に大きくなり、しばらくするとそれらが不要になる可能性があることに気付きました。デストラクタがメモリを解放するか、コード ブロックを使用してカスタム スコープを使用するために、ローカル スコープの最後まで待つことができました。
ただし、オブジェクトごとに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();
}
このようにして、デストラクタにメモリをクリアさせるか、自分で行うことができます。これは良い習慣ですか、それとも悪い習慣ですか?どうすれば改善できますか?