用大括号初始化C++数据成员

时间:2021-11-04 20:01:27
// 当结构体的成员中有构造函数(比如string), 则数组不可用{}初始化为0
// VC2008通过


#include "stdafx.h"
#include <string>


struct A
{
int i;
std::string s;
};




int _tmain(int argc, _TCHAR* argv[])
{
A a1 = {}; // a1.i 被初始化为0
A a2[2] = {}; // a2[0].i 和 a2[1].i 都没有被初始化为0
A a3[2] = {{}, }; // a3[0].i 被初始化为0, a3[1].i没有被初始化为0
A a4[2] = {{}, {}}; // a4[0].i 和 a4[1].i都被初始化为0


return 0;
}