C++11语言auto关键字作用

C++11中对关键字auto进行了重新定义,可以让编译器根据初始值类型自动推断变量的类型。

如果不知道为什么能自动推断出来可以看下:常量类型     和   C++常量类型 获取

上面写的都是推断基本类型,当然C++11 auto关键字并非这样简单的运用,更多的是为了自定义类型推断。相信很多人在写迭代器时会很头痛,太长了。先写个vector<double>类型的迭代器。

可能还有人会说,可以用typedef重新定义别名,这样是可以解决太长的问题,但这样代码又多出了一行。

接下来用C++11 auto关键字写一下以上代码,大家可以比对看看,哪个更洁简。

上面三段代码中可以看出用auto关键字,代码最洁简。这才是auto自动推断类型的好处,可以让代码洁简,更重要的是不用当心类型不匹配问题。

使用C++11 auto关键字也有几点要注意的地方。

1、使用auto关键字的变量必须有初始值。

这个很好理解,没有初始值,编译器就无法推断出变量类型。

2.使用auto关键字声明变量的类型,不能自动推导出顶层的CV-qualifiers和引用类型,除非显示声明。

3.使用auto关键字进行类型推导时,编译器会自动忽略顶层const,除非显示声明。

4.对于数组类型,auto关键字会推导为指针类型,除非被声明为引用。