高质量C++编程指南 林锐
### 高质量C++编程指南知识点总结 #### 文件概述 《高质量C++编程指南》由林锐博士编写,是一份详细的编程规范文档,旨在指导软件工程师编写高质量的C++代码。该指南最初版本为1.0,完成于2001年7月24日。文档分为多个章节,涉及文件结构、程序版式、命名规则、表达式和基本语句、常量、函数设计、内存管理、C++函数的高级特性、类的构造函数、析构函数与赋值函数、类的继承与组合等内容。 #### 第1章 文件结构 - **版权和版本声明**:确保每一份源文件都包含版权和版本信息,以便追踪来源和版本变更。 - **头文件结构**:头文件应包括预处理器指令、全局变量声明、类型定义、函数原型等。 - **定义文件结构**:定义文件通常包含具体的实现代码,如函数体、类的实现等。 - **头文件的作用**:头文件用于声明,提供接口给其他文件使用。 - **目录结构**:合理规划项目文件夹结构,方便管理和维护。 #### 第2章 程序的版式 - **空行**:用于分隔不同的逻辑段落,增强代码可读性。 - **代码行**:每行代码不超过一定长度,建议使用80字符以内。 - **代码行内的空格**:在操作符前后添加适当的空格以增加可读性。 - **对齐**:保持相同层次的代码对齐,如大括号的对齐。 - **长行拆分**:过长的行需要拆分成多行,并注意缩进。 - **修饰符的位置**:如 public、protected 和 private 关键字的位置,通常放在类定义中相应的成员前面。 - **注释**:提供必要的注释来解释复杂的逻辑或算法,注释应简洁明了。 - **类的版式**:遵循一定的格式和风格,如成员变量和成员函数的组织顺序。 #### 第3章 命名规则 - **共性规则**:变量、函数等命名应遵循一定的约定,如使用下划线分隔单词。 - **简单的Windows应用程序命名规则**:如使用大写字母开头表示常量等。 - **简单的Unix应用程序命名规则**:通常采用小写字母开头,用下划线分隔单词。 #### 第4章 表达式和基本语句 - **运算符的优先级**:掌握运算符的优先级顺序,避免因误解导致的错误。 - **复合表达式**:合理使用复合表达式,提高代码的紧凑性和效率。 - **if语句**:if语句的使用规则,包括缩进和条件表达式的书写方式。 - **循环语句的效率**:考虑循环语句的性能优化,如减少不必要的计算。 - **for语句的循环控制变量**:循环控制变量的命名和初始化。 - **switch语句**:switch语句的使用技巧,如default分支的放置位置。 - **goto语句**:避免使用goto语句,除非非常必要,因为它的使用可能导致代码难以理解和维护。 #### 第5章 常量 - **为什么需要常量**:常量可以提高代码的可读性和可维护性。 - **const与#define的比较**:const关键字相比#define宏定义具有更多的优点,如类型安全。 - **常量定义规则**:如使用全大写字母和下划线来定义常量。 - **类中的常量**:类中常量的定义和使用方法。 #### 第6章 函数设计 - **参数的规则**:函数参数的设计原则,如参数数量、类型选择等。 - **返回值的规则**:函数返回值的设计考虑,如使用bool类型表示成功或失败。 - **函数内部实现的规则**:函数内部实现的注意事项,如异常处理。 - **使用断言**:在适当的地方使用断言来验证函数的前提条件。 - **引用与指针的比较**:理解引用和指针的区别,根据实际情况选择使用。 #### 第7章 内存管理 - **内存分配方式**:了解不同的内存分配机制,如栈和堆。 - **常见的内存错误及其对策**:识别并解决内存泄漏等问题。 - **指针与数组的对比**:指针和数组在内存管理方面的差异。 - **指针参数是如何传递内存的**:理解指针作为函数参数时的数据传递机制。 - **free和delete把指针怎么啦**:free和delete函数的作用和区别。 - **动态内存会被自动释放吗**:手动管理动态分配的内存,防止内存泄漏。 - **杜绝“野指针”**:避免使用已释放的内存地址。 - **有了malloc/free为什么还要new/delete**:C++中new/delete提供了类型安全和异常处理支持。 - **内存耗尽怎么办**:当内存不足时的应对策略。 - **malloc/free的使用要点**:使用malloc/free时的注意事项。 - **new/delete的使用要点**:使用new/delete时的最佳实践。 - **一些心得体会**:关于内存管理的经验分享。 #### 第8章 C++函数的高级特性 - **函数重载的概念**:函数重载允许使用相同名称但不同参数列表的函数。 - **成员函数的重载、覆盖与隐藏**:了解这些概念的区别及应用场合。 - **参数的缺省值**:为函数参数设置缺省值的规则。 - **运算符重载**:运算符重载的使用方法和限制。 - **函数内联**:内联函数的定义和使用,以及其性能优势。 - **一些心得体会**:关于函数高级特性的实用技巧和经验总结。 #### 第9章 类的构造函数、析构函数与赋值函数 - **构造函数与析构函数的起源**:介绍构造函数和析构函数的历史背景。 - **构造函数的初始化表**:构造函数初始化列表的使用。 - **构造和析构的次序**:构造和析构函数调用的顺序问题。 - **示例:类String的构造函数与析构函数**:具体例子展示构造和析构过程。 - **不要轻视拷贝构造函数与赋值函数**:强调拷贝构造函数和赋值函数的重要性。 - **示例:类String的拷贝构造函数与赋值函数**:通过实例讲解拷贝构造函数和赋值函数的实现。 - **偷懒的办法处理拷贝构造函数与赋值函数**:简化的拷贝构造函数和赋值函数实现方法。 - **如何在派生类中实现类的基本函数**:在派生类中重写基类函数的方法。 - **一些心得体会**:关于构造函数和析构函数的实用经验和技巧。 #### 第10章 类的继承与组合 - **继承**:类继承的基础概念及其优缺点。 - **组合**:使用组合而非继承的原则和方法。 #### 第11章 其它编程经验 - **使用const提高函数的健壮性**:const关键字的使用技巧。 - **提高程序的效率**:编写高效代码的一些建议。 - **一些有益的建议**:编程过程中值得遵循的其他建议。 #### 参考文献 - **附录A:C++/C代码审查表**:代码审查的具体标准和检查项。 - **附录B:C++/C试题**:用于测试编程能力的题目。 - **附录C:C++/C试题的答案与评分标准**:题目答案和评分指南。 通过以上知识点的梳理,可以看出《高质量C++编程指南》不仅涵盖了C++编程的基本概念和技术细节,还提供了大量的实践经验和技术建议,对于想要提高C++编程水平的开发者来说,是一份非常宝贵的学习资料。
- 虎纠印象2011-11-18是word版本,排版很不错,之前以为只有pdf版来着,赞
- 粉丝: 94
- 资源: 18
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Android 实现一个系统级的悬浮秒表
- 摇钱树指标,基于机构订单原理
- 【java毕业设计】足球赛会管理系统源码(ssm+jsp+mysql+说明文档+LW).zip
- 技术资料分享STM32F10xxCDE-Errata-CH-V5很好的技术资料.zip
- 技术资料分享STM32F10xx46-Errata-CH-V2很好的技术资料.zip
- 技术资料分享STM32F10xx8B-Errata-CH-V6很好的技术资料.zip
- 技术资料分享STM32F2技术培训-灵活的静态存储控制器-FSMC很好的技术资料.zip
- Mamba快速入门.pdf
- 【java毕业设计】宜佰丰超市进销存管理系统源码(ssm+jsp+mysql+说明文档+LW).zip
- 全开源免费AI网址导航网站源码 AigoTools