C++11新增了类型long long和unsigned long long,以支持64位(或更宽)的整型;新
增了类型char16_t和char32_t,以支持16位和32位的字符表示;还新增了“原始”字符串。
C++11扩大了用大括号括起的列表(初始化列表)的适用范围,使其可用于所有内置
类型和用户定义的类型(即类对象)。使用初始化列表时,可添加等号(
=),也可不添
加:
int x={5};
double y {2.75};
short quar{5}={4,5,2,7,6,0};
另外,列表初始化语法也可用于new表达式中:
int *ar =new int {4} {2,4,6,7};
创建对象时,也可使用大括号(而不是圆括号)括起的列表来调用构造函数:calss stump { private: int roots; double weight;
public: stump(int r,double w): roots(r) ,weight(w){} };
stump s1(3,15.66); stump s2{5,43.666};
//C++11 stump s3= {4,23.33};//C++11
nullptr
空指针是不会指向有效数据的指针。
C++11新增了关键字nullptr,用于表示空指针;它是指针类
型,不能转换为整型类型。为向后兼容,C++11仍允许使用0来表示空指针,因此表达式
nullptr == 0为true,但使用nullptr而不是0提供了更高的类型安全.
智能指针
如果在程序中使用new从堆(自由存储区)分配内存,等到不再需要时,应使用
delete将其释放。C++引入了智能指针auto_ptr,以帮助自动完成这个过程。
C++引入了关键字
explicit,以禁止单参数构造函数导致的自动转换
新的STL方法
C++11新增了STL方法cbegin( )和cend( )。与begin( )和end( )一样,这些新方法也返回
一个迭代器,指向容器的第一个元素和最后一个元素的后面,因此可用于指定包含全部元
素的区间。另外,这些新方法将元素视为const。与此类似,crbegin( )和crend( )是rbegin( )
和rend( )的const版本。
不太完整,后续添加