我想将派生结构的所有成员归零。
有数百个成员,并且每隔一段时间就会添加更多成员,所以我觉得显式初始化它们很容易出错。
结构没有虚函数,所有成员字段都是内置的。但是,由于具有非平凡的构造函数,它们不是 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));
}
};
谢谢。