さー!みんなで考えよう〜!
X::func() がメンバ変数を一切触っていないか、もしくは
delete 後のメモリが他の動作で破壊されていない事。
で NULL の定義が
#define NULL pca
もしくは
#define NULL pcb
だったりすると…

あら不思議!