C++ 11 新关键字

来源:互联网 发布:重装系统网络不可用 编辑:程序博客网 时间:2024/06/05 15:31

C++ 11 新关键字

auto   delctype

auto 类型说明符。auto让编译器通过初始值来推算变量的类型。
显然,auto定义的变量必须有初始值。
使用auto也能在一条语句中声明多个变量。注意一条声明语句只能有一个基本数据类型。
delctype 类型说明符。从表达式的类型推断要定义的变量的类型。
delctype ()括号内可以是变量、表达式或函数返回值。

nullptr

C C++中NULL的定义是不一样的。
微笑问:为什么C++在NULL上选择不完全兼容C?
答:根本原因和C++的重载函数有关。C++通过搜索匹配参数的机制,试图找到最佳匹配(best-match)的函数,而如果继续支持void*的隐式类型转换,则会带来语义二义性(syntax ambiguous)的问题。

// 考虑下面两个重载函数   void foo(int i);  void foo(char* p)  foo(NULL); // which is called?  

现在使用nullptr关键字,就不用宏了。


 constexpr

constexpr,const expression,常量表达式。是指在编译阶段就能得到计算结果的表达式。如常量与字面值之间的运算。

复杂系统编程中,很难分辨一个初始值到底是不是常量表达式。所以C++11允许将变量声明为constexpr类型,让编译器去验证。

 final

C++11新标准提供了防止类被继承的方法——在类后使用final关键字。

 

 
0 0
原创粉丝点击