| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 【c++11】auto与decltype -> 正文阅读 |
|
[C++知识库]【c++11】auto与decltype |
? ? ? ? c++11引入auto与decltype的关键字,目的是为了简化程序员的开发工作量,将重心转移到算法设计与业务开发中,不得不感叹编译器越来越强大!话不多说,先总结吧! ? ? ? ? 作用:让编译器在编译期间可以自动推导出变量或者表达式类型。 ? ? ?auto? ? ? ? auto可以让编译器在编译阶段推导出变量的类型,但是前提是,能从返回值或者隐身条件下看出此变量类型是什么,如果作为程序员自己看到代码都不清楚类型是什么,当然编译器也不清楚,自然推导就失效了。?
auto的推导规则 直接上代码
看代码2
使用auto时要避免几种情况:
?再来看这段代码:
什么情况下auto会带const与volatile的属性呢?规则如下:
什么时候用auto,应用场景最多? ?这个没有绝对的答案,在不影响代码代码可读性的前提下尽可能使用auto是蛮好的,复杂类型就使用auto,int、double这种就没有必要使用auto了,如下
decltypedecltype同样进行类型推导,但是与auto有何区别呢? decltype主要用于推导表达式类型,这里只用于编译器分析表达式的类型,表达式实际不会进行运算。主要用于根据一个表达式将类型推算出来。看代码
注意: decltype不会像auto一样忽略引用和const volatile属性,decltype会保留表达式的引用和const volatile属性,简单来说,就是会照搬
decltype推导规则
示例代码如下:
?auto和decltype的配合使用?auto和decltype一般配合使用在推导函数返回值的类型问题上。 如果想实现这样的问题:
如何实现呢?这样子是否可以?
很可惜,答案是否定的,因为t和u都没有定义,怎么推导?编译器自己也不是很人工智能,所以编译出错,但是稍改一下就可以了
用->制定一下,引导auto的推导的问题,完美解决! 总结:
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 21:44:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |