精通Cocos2d-x游戏开发(基础卷)
上QQ阅读APP看书,第一时间看更新

5.1 初始化列表

POD结构或数组根据成员在结构内定义的顺序,可以使用初始化列表来进行初始化,以简化代码。

struct MyStruct{ int a; int b;};
MyStruct st = { 1, 2};
int a[] = { 1, 2, 3};

在C++03中,非POD结构的类或STL容器并不支持这种简便的写法,而C++11提供了强大的支持。使用std::initializer_list,可以让类及普通函数使用初始化列表,并且标准容器也可以使用初始化列表。

//类使用初始化列表——初始化列表构造函数
class MyClass
{
public:
    MyClass(std::initializer_list<int> list);
}
MyClass ms = {1, 2, 3};
//函数使用初始化列表
void MyFun(std::initializer_list<float> list);
MyFun({1.5f, -3.8f});
//标准容器使用初始化列表
vector<string> v = {"baoye", "abc", "test"};