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?

Antworten auf die Frage(16)

Ihre Antwort auf die Frage