37 CPP自动推到类型

本文介绍了C++11中auto关键字的新功能,它被用来指示编译器推导变量类型。在Linux环境下,需用-std=c++11参数编译。auto变量必须初始化,不能用于函数形参和数组定义。合理使用auto可以简化复杂声明,尤其在模板、lambda表达式和依赖模板参数的场景中。

37 CPP自动推到类型

在C++98中,auto关键字用于修饰变量(自动存储的局部变量)

在C++11中,赋予了auto全新的含义,不再用于修饰变量,而是作为一个类型指示符,指示编译器在编译时推导auto声明的变量的数据类型。

在Linux平台下,编译需要加 -std=c++11参数

注意:

1 auto声明的变量必须在定义时初始化

2 右值可以是具体的数值,也可以是表达式和函数的返回值。

3 auto不能作为函数的形参类型

4 auto不能直接声明数组

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

不要滥用auto,auto在编译时真正的用途如下:

1 代替冗长复杂的变量声明。(比如函数指针)

2 在模板中,用于声明依赖模板参数的变量

3 函数模板依赖模板参数的返回值

4 用于lambda表达式

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值