auto为什么自己的不支持类成员变量类型推导

更新时间:02-05 教程 由 青果 分享

auto为什么自己的不支持类成员变量类型推导?

在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量

C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。

语法糖:

简单的识别变量类型

这个还不能体现出 auto 的真正意义. 但是当类型名过长时, auto 的作用就发挥出来了.

注:使用auto定义变量时必须对其进行初始化,在编译阶段编译器需要根据初始化表达式来推导auto的实际类型。因此auto并非是一种“类型”的声明,而是一个类型声明时的“占位符”,编译器在编译期会将auto替换为变量实际的类型。

auto迭代:

对于一个有范围的集合而言,由程序员来说明循环的范围是多余的,有时候还会容易犯错误。因此C++11中引入了基于范围的for循环。for循环后的括号由冒号“ :”分为两部分:第一部分是范围内用于迭代的变量,第二

部分则表示被迭代的范围

但是这样不会对原数组 a 造成影响

auto& 可以对数组 a 中的元素进行修改.

auto特性:

1.auto不能作为函数参数

2.auto不能直接声明数组

3. 为了避免与C++98中的auto发生混淆,C++11只保留了auto作为类型指示符的用法

4. auto在实际中最常见的优势用法就是跟以后会讲到的C++11提供的新式for循环,还有lambda表达式等进行配合使用。

5. auto不能定义类的非静态成员变量

6. 实例化模板时不能使用auto作为模板参数

声明:关于《auto为什么自己的不支持类成员变量类型推导》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2188178.html