ZeroMemoryの恐怖

Windowsプログラムで同じみのZeroMemory関数ですが、これのせいでわけがわからんバグにはまってしまった。ある構造体を宣言して、それをVisitorパターンのConcreteAcceptorにしていたのだが、ZeroMemoryでメモリクリアをしたら、もののみごとにAcceptメソッドまで消去されてしまったようだ。デバッガでスーパークラスになっているAcceptorクラスのアドレスを見たら0になっていて、Acceptメソッドを呼び出すとアクセス違反が起きていた。ConcreteAcceptorの方は、デバッガでもちゃんと構造体として認識できていて、フィールドだけが0に設定されているように見えたが、どうも継承情報までクリアされてしまっていたようだ。やはり、C++ではちゃんとコンストラクタで初期化するようにしないとだめなんか…。