派生構造のすべてのメンバーをゼロに設定したいと考えています。
何百ものメンバーがあり、それ以上のメンバーが時々追加されるため、それらを明示的に初期化するとエラーが発生しやすいと感じます。
構造体には仮想関数がなく、すべてのメンバー フィールドが組み込みです。ただし、自明でないコンストラクターがあるため、それらは POD ではありません。
練習に対する標準的な眉をひそめることとは別に、次のことについて何か問題がありますか?
struct Base
{
// Stuff
};
struct Derived : public Base
{
// Hundreds of fields of different built-in types
// including arrays
Derived()
{
::memset(reinterpret_cast<char*>this + sizeof (Base), 0, sizeof *this - sizeof (Base));
}
};
ありがとう。