Вместо того, чтобы помнить, чтобы инициализировать простую структуру "C", я мог бы извлечь из нее и обнулить ее в конструкторе следующим образом:
struct MY_STRUCT
{
int n1;
int n2;
};
class CMyStruct : public MY_STRUCT
{
public:
CMyStruct()
{
memset(this, 0, sizeof(MY_STRUCT));
}
};
Этот трюк часто используется для инициализации структур Win32 и иногда может устанавливать вездесущий элемент cbSize.
Теперь, если для вызова memset для уничтожения нет таблицы виртуальных функций, это безопасная практика?