Zerando uma estrutura no construtor

Uma ampla gama de estruturas é usada na programação Win32. Muitas vezes, apenas alguns de seus campos são usados e todos os outros campos são definidos como zero. Por exemplo

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

Eu quero parar de copiar e colar esse código e, em vez disso, usar uma abstração que se preocupe com zerar e definir parâmetros. Vamos presumir que eu só preciso da estrutura inicializada como no exemplo, e nenhuma outra sintonia é necessária. A seguinte é uma boa solução? Quais são os possíveis problemas?

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

Estou particularmente preocupado com a chamada ZeroMemory () - parece que eu controle totalmente o código e a classe não tem vtable e chamar ZeroMemory () dessa forma é seguro e não há grande diferença entre os dois trechos de código, exceto que o último fornece uma abstração. Há alguma advertência?

questionAnswers(8)

yourAnswerToTheQuestion