阅读129 返回首页    go 阿里云 go 技术社区[云栖]


C++ 11 新关键字

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关键字。

 

 

最后更新:2017-04-03 05:39:19

  上一篇:go 数据库设计
  下一篇:go 云计算的安全问题