初始化非POD结构/类

时间:2014-08-13 10:19:38

标签: c++ struct initialization

让我们说

struct  
{
    int a;
    int b;
    int c;
    int d;
};

如果我想将所有成员初始化为零,我可以使用:

A a = {};

如果我只想设置一个我可以使用的成员:

A a = { .b = 5 };

如果A不是POD,那么我需要用以下内容初始化构造函数中的所有内容:

A::A()
    : a (0)
    , b (0)
    , c (0)
    , d (0)
{}

列表必须是详尽无遗的,否则数据内存将保持未初始化状态并包含意外值。

有没有办法零初始化非POD结构/类的所有数据成员而无需详尽地指定每个数据内存?

有时我忘记了一个导致其中一个"它在我的机器上工作的成员"错误。

修改: 我真正想要的是一种零初始化数据成员的方法,而不必详尽地指定每个成员。

0 个答案:

没有答案