Ist dieser C ++ - Strukturinitialisierungstrick sicher?
Anstatt daran denken zu müssen, eine einfache 'C'-Struktur zu initialisieren, könnte ich sie im Konstruktor wie folgt ableiten und auf Null setzen:
struct MY_STRUCT
{
int n1;
int n2;
};
class CMyStruct : public MY_STRUCT
{
public:
CMyStruct()
{
memset(this, 0, sizeof(MY_STRUCT));
}
};
Dieser Trick wird oft verwendet, um Win32-Strukturen zu initialisieren und kann manchmal das Allgegenwärtige setzencbSize Mitglied.
Ist dies eine sichere Vorgehensweise, solange es keine virtuelle Funktionstabelle gibt, die der Memset-Aufruf zerstören kann?