C++良好的编程风格.pdf
前 言 ....................................................................................................................................6 第 1 章 文件结构............................................................................................................... 11 1.1 版权和版本的声明................................................................................................... 11 1.2 头文件的结构 ..........................................................................................................12 1.3 定义文件的结构.......................................................................................................13 1.4 头文件的作用 ..........................................................................................................13 1.5 目录结构 ..................................................................................................................14 第 2 章 程序的版式 ...........................................................................................................15 2.1 空行..........................................................................................................................15 2.2 代码行......................................................................................................................16 2.3 代码行内的空格.......................................................................................................17 2.4 对齐..........................................................................................................................18 2.5 长行拆分 ..................................................................................................................19 2.6 修饰符的位置 ..........................................................................................................19 2.7 注释..........................................................................................................................20 2.8 类的版式 ..................................................................................................................21 第 3 章 命名规则...............................................................................................................22 3.1 共性规则 ..................................................................................................................22 3.2 简单的 WINDOWS 应用程序命名规则......................................................................23 3.3 简单的 UNIX 应用程序命名规则..............................................................................25 第 4 章 表达式和基本语句................................................................................................26 4.1 运算符的优先级.......................................................................................................26 4.2 复合表达式 ..............................................................................................................27 4.3 IF 语句 ......................................................................................................................27 4.4 循环语句的效率.......................................................................................................29 4.5 FOR 语句的循环控制变量 ........................................................................................30 4.6 SWITCH 语句 ..............................................................................................................30 4.7 GOTO 语句 .................................................................................................................31 第 5 章 常量.......................................................................................................................33 5.1 为什么需要常量.......................................................................................................33 5.2 CONST 与 #DEFINE 的比较 ........................................................................................33 5.3 常量定义规则 ..........................................................................................................33 5.4 类中的常量 ..............................................................................................................34 第 6 章 函数设计...............................................................................................................36 高质量 C++/C 编程指南,v 1.0 2001 Page 4 of 4 6.1 参数的规则 ..............................................................................................................36 6.2 返回值的规则 ..........................................................................................................37 6.3 函数内部实现的规则 ...............................................................................................39 6.4 其它建议 ..................................................................................................................40 6.5 使用断言 ..................................................................................................................41 6.6 引用与指针的比较...................................................................................................42 第 7 章 内存管理...............................................................................................................44 7.1 内存分配方式 ...........................................................................................................44 7.2 常见的内存错误及其对策 ........................................................................................44 7.3 指针与数组的对比....................................................................................................45 7.4 指针参数是如何传递内存的?.................................................................................47 7.5 FREE 和 DELETE 把指针怎么啦? ..............................................................................50 7.6 动态内存会被自动释放吗?....................................................................................50 7.7 杜绝“野指针”.......................................................................................................51 7.8 有了 MALLOC/FREE 为什么还要 NEW/DELETE ? .....................................................52 7.9 内存耗尽怎么办?...................................................................................................53 7.10 MALLOC/FREE 的使用要点 ......................................................................................54 7.11 NEW/DELETE 的使用要点 ........................................................................................55 7.12 一些心得体会.........................................................................................................56 第 8 章 C++函数的高级特性 ............................................................................................57 8.1 函数重载的概念.......................................................................................................57 8.2 成员函数的重载、覆盖与隐藏................................................................................60 8.3 参数的缺省值 ..........................................................................................................63 8.4 运算符重载 ..............................................................................................................64 8.5 函数内联 ..................................................................................................................65 8.6 一些心得体会 ..........................................................................................................68 第 9 章 类的构造函数、析构函数与赋值函数 .................................................................69 9.1 构造函数与析构函数的起源....................................................................................69 9.2 构造函数的初始化表 ...............................................................................................70 9.3 构造和析构的次序...................................................................................................72 9.4 示例:类 STRING 的构造函数与析构函数...............................................................72 9.5 不要轻视拷贝构造函数与赋值函数 ........................................................................73 9.6 示例:类 STRING 的拷贝构造函数与赋值函数 .......................................................74 9.7 偷懒的办法处理拷贝构造函数与赋值函数.............................................................75 9.8 如何在派生类中实现类的基本函数 ........................................................................76 9.9 一些心得体会...........................................................................................................77 第 10 章 类的继承与组合..................................................................................................78 高质量 C++/C 编程指南,v 1.0 2001 Page 5 of 5 10.1 继承........................................................................................................................78 10.2 组合........................................................................................................................80 第 11 章 其它编程经验......................................................................................................82 11.1 使用 CONST 提高函数的健壮性..............................................................................82 11.2 提高程序的效率.....................................................................................................84 11.3 一些有益的建议.....................................................................................................85 参考文献 ............................................................................................................................87 附录 A :C++/C 代码审查表............................................................................................88 附录 B :C++/C 试题 .......................................................................................................93 附录 C :C++/C 试题的答案与评分标准.........................................................................97 C++作为一种高效的编程语言,拥有良好的编程风格对于提高代码的可读性、可维护性以及运行效率至关重要。本篇指南详细阐述了C++编程中的各个要点,包括文件结构、程序版式、命名规则、表达式和基本语句、常量、函数设计、内存管理、类的构造函数、析构函数与赋值函数、类的继承与组合、以及其他编程经验。 在文件结构方面,建议在文件开始声明版权和版本信息,以标明程序的归属和更新历史。头文件应具备清晰的结构,并明确其作用,如提供函数声明、宏定义和模板等。定义文件则包含类的实现细节。良好的目录结构有助于项目的模块化和管理。 在程序版式方面,合理的空行使用可以提高代码的可读性;代码行内应当适当使用空格以区分操作符和变量;合理的对齐和长行拆分可以避免代码混乱;修饰符的合理位置能提高代码的整洁性;注释的恰当使用有助于其他开发者理解代码意图;类的版式应当规范,以体现面向对象设计的清晰性。 命名规则是编程风格中的重要组成部分。良好的命名规则应遵循共性规则,如简洁明了、有意义,并根据不同的操作系统环境(如Windows或UNIX)制定相应的命名约定。 在表达式和基本语句的编写中,了解运算符优先级,合理使用复合表达式,以及编写高效且逻辑清晰的IF语句和循环语句是基础。此外,还应当注意 SWITCH 语句的使用和 GOTO 语句的限制,以避免代码混乱。 常量的使用在编程中极为重要,它有助于提升代码的可读性和易维护性。在C++中,应该优先使用 CONST 关键字而不是宏 #DEFINE,以获得类型安全和作用域控制。 函数设计是C++编程的核心,参数和返回值规则应当清晰明确。内部实现应遵循一定的规范,比如避免使用全局变量,使用断言来增强代码健壮性,合理使用引用和指针来提高效率。 内存管理是C++程序员必须面对的难题。了解内存分配方式、常见的内存错误及其对策、指针与数组的区别、以及动态内存的使用和释放,是编写稳定且高效C++程序的必要条件。 C++提供了函数重载、默认参数值、运算符重载和函数内联等高级特性,这些特性使得C++代码更简洁、更符合面向对象的设计原则。 类的设计是面向对象编程的核心,包括构造函数、析构函数和赋值函数的合理使用。拷贝构造函数和赋值函数应当谨慎实现,以避免深拷贝或浅拷贝引发的问题。 在类的继承与组合方面,理解何时使用继承,何时使用组合,以及如何在派生类中正确实现基类的构造函数、析构函数和成员函数,对于编写模块化和可重用的代码至关重要。 作者林锐博士还提供了一些其他编程经验,例如使用 CONST 提高函数的健壮性,提高程序效率的建议,以及编写高质量代码的有益建议。附录中包含了C++/C代码审查表、试题以及答案与评分标准,方便读者进行自我检查和学习。 通过遵循本指南,程序员可以编写出更加规范、高效和可维护的C++代码,从而提升软件质量,这也是本指南的最终目标。
剩余100页未读,继续阅读
- Suneastxo2014-07-30值得学习一下!
- 粉丝: 21
- 资源: 158
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring MVC和Hibernate框架的学校管理系统.zip
- (源码)基于TensorFlow 2.3的高光谱水果糖度分析系统.zip
- (源码)基于Python框架库的知识库管理系统.zip
- (源码)基于C++的日志管理系统.zip
- (源码)基于Arduino和OpenFrameworks的植物音乐感应系统.zip
- (源码)基于Spring Boot和Spring Security的博客管理系统.zip
- (源码)基于ODBC和C语言的数据库管理系统.zip
- (源码)基于Spring Boot和Vue的Jshop商城系统.zip
- (源码)基于C++的学生信息管理系统.zip
- (源码)基于Arduino的实时心电图监测系统.zip