自从Cocos2d-x3.0开始,Cocos2dx就正式的使用了C++11标准.C++11简洁方便的特性使程序的可拓展性和可维护性大大提高,也提高了代码的书写速度。
下面我们就来一起学习一下Cocos2d-x开发中那些不得不了解的C++11知识。
1.初始化列表
POD结构或者数组根据成员在结构内定义的顺序,可以使用初始化列表来进行初始化以简化代码。
structStructA{inta;intb;
};
StructA sa={1,2};
在C++03中,非POD结构的类或者STL容器并不支持这种简便的写法,而C++11提供了强大的支持。使用std::initializer_list可以让类和普通函数使用初始化列表,并且STL容器也是可以使用初始化列表,代码如下:
//类使用初始化列表
classClassA{public:
ClassA(std::initializer_listlist){}
};
ClassA a= { 1, 2, 3};/*注意!使用std::initializer_list需要先include 头文件*/
//函数使用初始化列表
void func(std::initializer_listlist){/*Function Body*/}
func({1.6f,2.8f});/*注意!使用std::initializer_list需要先include 头文件*/
//STL标准容器使用初始化列表
vector s = {"hello","C++","11"};