初窥C++11

本文总结了C++11的一些关键特性,包括auto类型推导、内存对齐、lambda表达式、右值引用及移动语义等。这些改进旨在提升性能、简化语法并增强代码的安全性和可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  没有买书, 入门先读了一遍http://www.chenlq.net/cpp11-faq-chs, 里面写有C++11 FAQ中文翻译版.

 

  我感觉C++11在语言新特性方面的改动基本上是为了4个目标, 说白了就是我看完之后脑子里还有印象的东西:

1, 提高性能, 同时不让程序员复出更多劳动.

2, 给旧语法提供新语法支持, 让程序员写更少的代码, 实现更加不可思议的功能(模板变参)

3, 提供了一些工具也好, 语法也好, 让程序员能够给自己的代码加上严格的编译检查, 防止自己犯2.

4, 引入之前tr1/boost中某几个实用的库到C++11标准库, 顺便强化一下C++标准库.

  所以如果真的去看C++11各种新特性, 会发现并没有之前想象的很复杂, 许多特性我相信未来通过类似Google编程规范都会被筛掉, 留下的一定是值得使用的特性, 拭目以待.

 

  随便捡几个我觉得的确很实惠的特性, 学院派的东西就暂且忘掉先:

1, auto: 程序员不用再纠结各种超长的typedef定义了.

2, alignas: 再也不用union来做char[]缓冲区的内存对齐了.

3, lambda: 与STL配合, 可以把一些简单的函数直接编码在调用处, 对可读性是提高.

4, 右值与move: 减少内存拷贝, 这是非常实惠的.

5, bind/function: 正式纳入namespace std了, 一种特立独行的抽象方式.

6, 初始化列表initializer_list: 令构造函数有了更多可能.

7, 模板变参: 复杂暗黑的玩意, 编译期解决各种运行期问题, 只有想不到, 没有做不到, 以后各种用法慢慢普及开来相信不会太晦涩.

8, 简化的for循环: 好吧, 和auto如出一辙, 让程序员更省字.

9, STL新增容器: tuple, 基于模板变参实现, 可以装各种不同类型, 有点风骚.

10, 和JAVA一样, 可以直接在类定义内初始化成员变量.

  

  以后想到继续补充, C++依旧充满魅力, 虽然关于它复杂度的抱怨不绝于耳, 但我还是非常肯定C++对项目可读性, 可维护性, 结构清晰性有极大的帮助.

 

  C++是一个多范式语言, 面向对象仅是它的一部分, 所以别抱有太多偏见, 存在即合理.

 

www.settledown.cn

 

转载于:https://www.cnblogs.com/cppisnotbad/p/3241916.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值