
| 从语法、编码习惯和编程规范、程序架构和思想3个方面深入探讨编写高质量C++代码的技巧、禁忌和最佳实践 |
| 李健 资深软件开发工程师,毕业于中科院计算所,有多年C/C++开发经验,积累了丰富的实践经验。曾经参与了国家“十一五”863项目、北京市文化创意项目、上海世博会项目等多个项目的大型软件的架构、设计与开发。此外,对MPICH并行编程与高性能计算、脚本语言Lua、Android和iPhone等移动开发平台也有一定的研究。活跃于CSDN和博客园等技术社区,发表和分享了大量技术文章,深受网友欢迎。 .. << 查看详细 |
| 《编写高质量代码:改善c++程序的150个建议》 前 言 第一部分 语法篇 第1章 从c继承而来的/2 建议0:不要让main函数返回void/2 建议1:区分0的4种面孔/5 建议2:避免那些由运算符引发的混乱/8 建议3:对表达式计算顺序不要想当然/9 建议4:小心宏#define使用中的陷阱/12 建议5:不要忘记指针变量的初始化/14 建议6:明晰逗号分隔表达式的奇怪之处/15 建议7:时刻提防内存溢出/16 建议8:拒绝晦涩难懂的函数指针/19 建议9:防止重复包含头文件/19 建议10:优化结构体中元素的布局/21 建议11:将强制转型减到最少/23 建议12:优先使用前缀操作符/26 建议13:掌握变量定义的位置与时机/28 建议14:小心typedef使用中的陷阱/30 建议15:尽量不要使用可变参数/32 .建议16:慎用goto/36 建议17:提防隐式转换带来的麻烦/38 建议18:正确区分void与void*/42 第2章 从c到c++,需要做出一些改变/45 建议19:明白在c++中如何使用c /45 建议20:使用memcpy()系列函数时要足够小心/48 建议21:尽量用new/delete代替malloc/free/49 建议22:灵活地使用不同风格的注释/52 建议23:尽量使用c++标准的iostream/55 建议24:尽量采用c++风格的强制转型/58 建议25:尽量用const、enum、inline替换#define/59 建议26:用引用代替指针/62 第3章 说一说“内存管理”的那点事儿/66 建议27:区分内存分配的方式/67 建议28:new/delete与new[]/delete[]必须配对使用/69 建议29:区分new的三种形态/71 建议30:new内存失败后的正确处理/75 建议31:了解new_handler的所作所为/78 建议32:借助工具监测内存泄漏问题/81 建议33:小心翼翼地重载operator new/ operator delete /84 建议34:用智能指针管理通过new创建的对象/88 建议35:使用内存池技术提高内存申请效率与性能/91 第4章 重中之重的类/95 建议36:明晰class与struct之间的区别/95 建议37:了解c++悄悄做的那些事/99 建议38:首选初始化列表实现类成员的初始化/101 建议39:明智地拒绝对象的复制操作/105 建议40:小心,自定义拷贝函数/107 建议41:谨防因构造函数抛出异常而引发的问题/110 建议42:多态基类的析构函数应该为虚/113 建议43:绝不让构造函数为虚/116 建议44:避免在构造/析构函数中调用虚函数/117 建议45:默认参数在构造函数中给你带来的喜与悲/120 建议46:区分overloading、overriding及hiding之间的差异/122 建议47:重载operator=的标准三步走/126 建议48:运算符重载,是成员函数还是友元函数/131 建议49:有些运算符应该成对实现/134 建议50:特殊的自增自减运算符重载/136 建议51:不要重载operator&&、operator |
商品评论(0条)