ゼロ初期化クラス

こんなん作ってみました。

class InitZeroMemory{
public:
    virtual ~InitZeroMemory(){}
    static void* operator new( size_t size ){
        void* p = malloc( size );
        if( p != NULL ) memset( p , 0 , size );
        return p;
    }
    static void operator delete( void* p ){
        free( p );
    }
};

こいつを継承してクラスを作ると、そのクラスの全てのメンバがゼロで初期化されます。


たくさんのメンバを持っているようなクラスには便利かも?


[追記]
うぎゃー、メンバとして持った場合、newされないからゼロクリアされねー!!
そのクラスがInitZeroMemoryを継承していれば問題ないけど……でも結局クリアされない可能性があるなら意味がねー(;´Д`)
こうなったらメンバの初期化段階で、その値が全部ゼロになるようにしてやるヽ(`Д´)ノウワァン
……コンストラクタで全部ゼロに初期化してもっかいコンストラクタ呼べばいいかな(´▽`*)アハハ