我最初写的代码是这样的:
class Foo
{
public:
Foo() : m_buffer()
{}
private:
char m_buffer[1024];
};
有人比我聪明,说使用m_buffer()初始化器会清零内存。我的意图是保留未初始化的内存。我没有时间进一步讨论,但这引起了我的好奇心。
以前,我认为总是在初始化列表中列出每个成员是明智的。
请问有人能进一步描述这种行为吗?
1)为空括号初始化器为什么会填充内存?
2)它只适用于POD数据类型吗?我听说是这样的,但没有标准可查。
谢谢