c++11通过了列表初始化的方式。能通过列表初始化的方式去初始化一些自定义的类型。
赋值可以采用如下形式:
int a=3+4;
int a= {3 + 4};
int a (3 + 4);
int a{3 + 4};
可以包含头文件
标准模板中容器对初始化列表的实现提供了支持,在头文件中<initializer_list>,并且声明了一个以initialize_list<T>模板的构造函数。同样可以使得自定义的类使用列表初始化。
初始化列表也可以用于函数的参数和函数的返回值等的情况。
采用列表初始化的方式初始化变量,能够防范类型收窄。
什么是类型收窄。如果A类型能够转换为B类型,且B类型还能够转换为A类型。则认为没有类型收窄的情况。如果不行,则认为产生了类型收窄。
对于有符号和无符号的类型转换,则当转换的是负数,则认为有类型收窄的危险。
网友评论