- 论坛徽章:
- 4
|
第五版包含了C++11的讲解, 对于已经使用C++有一定经验的程序员, 可以针对性的阅读C++11相关章节, 体会C++11对现有C++的改进与提升.
C++11并没有改变C++, 而是对已有C++的增强与规范, 学习者也不必感觉到太大的学习压力, 花不了多少精力就可以很快领悟到核心内容, 应用到工作中去.
简单罗列一下我前一阵初步了解C++的一些小感受:
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++11利用泛型技术增加了很多不可思议的容器和工具, 使用起来可以轻松解决一些设计上的抽象问题, 但我还是倾向于面向对象的设计风格, 更利于程序员间代码与设计交流, 大家也应该多思考一些C++11之后的代码风格与规范问题, 取其精华去其糟粕. |
|