高质量C++/C编程指南
文件状态
[ ] 草稿文件
[] 正式文件
[ ] 更改正式文件
文件标识:
当前版本: 1.0
作 者: 林锐 博士
完成日期: 2001年7月24日
高质量 C++/C 编程指南,v 1.0
版 本 历 史
版本/状态 作者 参与者 起止日期 备注
V 0.9
草稿文件
林锐 2001-7-1至
2001-7-18
林锐起草
V 1.0
正式文件
林锐 2001-7-18至
2001-7-24
朱洪海审查V 0.9,
林锐修正草稿中的错误
2001 Page 2 of 95
高质量 C++/C 编程指南,v 1.0
目
目
录
录
前 言.................................................................................................................................... 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 代码行内的空格........................................................................................................16
2.4 对齐...........................................................................................................................17
2.5 长行拆分...................................................................................................................18
2.6 修饰符的位置...........................................................................................................19
2.7 注释...........................................................................................................................19
2.8 类的版式...................................................................................................................20
第3章 命名规则.................................................................................................................. 22
3.1 共性规则...................................................................................................................22
3.2 简单的WINDOWS应用程序命名规则.........................................................................23
3.3 简单的UNIX应用程序命名规则................................................................................24
第4章 表达式和基本语句.................................................................................................. 25
4.1 运算符的优先级........................................................................................................25
4.2 复合表达式............................................................................................................... 26
4.3 IF 语句.......................................................................................................................26
4.4 循环语句的效率........................................................................................................28
4.5 FOR 语句的循环控制变量.........................................................................................29
4.6 SWITCH语句...............................................................................................................29
4.7 GOTO语句..................................................................................................................30
第5章 常量......................................................................................................................... 31
5.1 为什么需要常量........................................................................................................31
5.2 CONST 与 #DEFINE的比较..........................................................................................31
5.3 常量定义规则...........................................................................................................31
5.4 类中的常量............................................................................................................... 32
2001 Page 3 of 95
高质量 C++/C 编程指南,v 1.0
第6章 函数设计.................................................................................................................. 33
6.1 参数的规则............................................................................................................... 33
6.2 返回值的规则...........................................................................................................34
6.3 函数内部实现的规则................................................................................................36
6.4 其它建议...................................................................................................................37
6.5 使用断言...................................................................................................................37
6.6 引用与指针的比较....................................................................................................38
第7章 内存管理.................................................................................................................. 41
7.1内存分配方式............................................................................................................41
7.2常见的内存错误及其对策.........................................................................................41
7.3指针与数组的对比.....................................................................................................42
7.4指针参数是如何传递内存的?..................................................................................44
7.5 FREE和DELETE把指针怎么啦?.................................................................................46
7.6 动态内存会被自动释放吗?.....................................................................................47
7.7 杜绝“野指针”............................................................................................................47
7.8 有了MALLOC/FREE为什么还要NEW/DELETE ?..........................................................48
7.9 内存耗尽怎么办?....................................................................................................49
7.10 MALLOC/FREE 的使用要点.......................................................................................51
7.11 NEW/DELETE 的使用要点.........................................................................................52
7.12 一些心得体会..........................................................................................................52
第8章 C++函数的高级特性...............................................................................................54
8.1 函数重载的概念........................................................................................................54
8.2 成员函数的重载、覆盖与隐藏.................................................................................56
8.3 参数的缺省值...........................................................................................................60
8.4 运算符重载............................................................................................................... 61
8.5 函数内联...................................................................................................................62
8.6 一些心得体会...........................................................................................................64
第9章 类的构造函数、析构函数与赋值函数....................................................................65
9.1 构造函数与析构函数的起源.....................................................................................65
9.2 构造函数的初始化表................................................................................................66
9.3 构造和析构的次序....................................................................................................68
9.4 示例:类STRING的构造函数与析构函数..................................................................68
9.5 不要轻视拷贝构造函数与赋值函数.........................................................................69
9.6 示例:类STRING的拷贝构造函数与赋值函数..........................................................69
9.7 偷懒的办法处理拷贝构造函数与赋值函数..............................................................71
9.8 如何在派生类中实现类的基本函数.........................................................................71
9.9 一些心得体会...........................................................................................................73
2001 Page 4 of 95
高质量 C++/C 编程指南,v 1.0
第10章 类的继承与组合....................................................................................................74
10.1 继承......................................................................................................................... 74
10.2 组合......................................................................................................................... 75
第11章 其它编程经验........................................................................................................ 78
11.1 使用CONST提高函数的健壮性.................................................................................78
11.2 提高程序的效率......................................................................................................80
11.3 一些有益的建议......................................................................................................81
参考文献............................................................................................................................ 82
附录A :C++/C代码审查表...............................................................................................83
附录B :C++/C试题.......................................................................................................... 88
附录C :C++/C试题的答案与评分标准............................................................................91
2001 Page 5 of 95