I have the following struct and classes.

Code:
class RefCounted  {
private: LONG m_nRefCount;

public:  virtual ~RefCounted();

};

struct Header {
  short us;				
  int     i1;
  int     i2;
};

struct UnitHeader: public Header {
  BYTE filler[sizeof(ULONG) - (sizeof(_SUnitHeader) & (sizeof(ULONG) - 1))];
};

class CHeader : public UnitHeader, public RefCounted {
};
RefCounted has a virtual destructor, UnitHeader and Header are POD structs.

CHeader inherits from UnitHeader and RefCounted.

Now consider this:

Code:
void CHeader::MakeDummy() {
memset((UnitHeader*)this, 0, sizeof(UnitHeader));
}
The 'this' pointer in CHeader is casted to UnitHeader struct and that memory area set to zero.
Is that safe? Can I be sure that the Vtbl is not set to zero?