Hacer cero una estructura en el constructor

Se utiliza una amplia gama de estructuras en la programación de Win32. Muchas veces solo se utilizan algunos de sus campos y todos los demás campos se establecen en cero. Por ejemplo

STARTUPINFO startupInfo; // has more than 10 member variables
ZeroMemory( &startupInfo, sizeof( startupInfo ) ); //zero out
startupInfo.cb = sizeof( startupInfo ); //setting size is required according to MSDN
startupInfo.dwFlags = STARTF_FORCEOFFFEEDBACK;
//Now call CreateProcess() passing the startupInfo into it

Quiero dejar de copiar y pegar dicho código y, en su lugar, utilizar una abstracción que se preocupe por la puesta a cero y la configuración de parámetros. Supongamos que solo necesito la estructura inicializada como en el ejemplo, y nunca se necesita otra afinación. ¿Es la siguiente una buena solución? ¿Cuáles son los posibles problemas?

class CStartupInfo : public STARTUPINFO {
public:
   CStartupInfo()
   {
       ZeroMemory( this, sizeof( STARTUPINFO ) );
       cb = sizeof( STARTUPINFO );
       dwFlags = STARTF_FORCEOFFFEEDBACK;
   }
};

Estoy particularmente preocupado por la llamada ZeroMemory (): parece que controlo completamente el código y la clase no tiene vtable y llamar a ZeroMemory () de esta manera es seguro y no hay una gran diferencia entre los dos fragmentos de código, excepto que este último Proporciona una abstracción. ¿Hay alguna advertencia?

Respuestas a la pregunta(8)

Su respuesta a la pregunta