且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

C++ 11 新关键字

更新时间:2022-06-29 13:06:20

C++ 11 新关键字

auto   delctype

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

nullptr

C C++中NULL的定义是不一样的。
C++ 11 新关键字问:为什么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关键字。