更加简单的初始化方式
C++11提供在类中定义类的数据成员,可以直接在成员之后添加=[缺省值],当通过编译器自动生成的默认构造函数初始化对象时,对应的数据成员就会被初始化成对应的缺省值。
class Test
{
public:
int _t = 100;
};
int main()
{
Test t; //初始化完成后,t._t的值为100
return 0;
}
更加强大的{}
在C++98中,数组可以使用{}来进行初始化,对自定义类型是不可以的。
在C++11中,{}的使用范围变得更广,可以使用{}来初始化一个vector/list/string/map/set/multimap/multiset/unordered_map/unordered_set,在初始化时,可以添加=号,也可以不适用=号。
int main()
{
//c++11中,下面的方式是可以的
std::vector<int> v1 = { 1,2,3 };
std::vector<int> v2{ 1,2,3 };
std::list<int> l1 = { 1,2,3 };
std::list<int> l2{ 1,2,3 };
std::string s1 = { "hello" };
std::string s2{ "he