高质量C++/C编程指南 - 林锐博士

基本信息

  • 作者: 林锐 博士
  • 版本: V1.0 (2001年7月)
  • 页数: 101页
  • 原始路径: /田浩然上传的资料/电子书/C_C++/高质量C++_C编程指南.pdf

书籍概要

本书是林锐博士编写的一本实用的C++/C编程指南,内容简明扼要,涵盖了从文件结构到高级特性的完整知识体系。作为一份”正式文件”,它不仅是一本学习材料,更是一份可以作为团队规范参考的代码质量标准。

核心主题

1. 文件结构

  • 头文件的组织与声明规范
  • 定义文件的结构
  • 头文件的作用(避免重复包含、声明与定义的分离)
  • 目录结构设计

2. 程序的版式

  • 空行: 用空行分隔逻辑相关的代码块
  • 代码行: 每行代码长度控制,保持可读性
  • 空格: 运算符两侧、关键字与括号之间的空格规范
  • 对齐: 代码对齐原则
  • 长行拆分: 长表达式的换行规则
  • 注释: 注释的规范写法,包括文件头注释、函数注释、行内注释

3. 命名规则

  • 变量命名:驼峰命名法、下划线分隔法
  • 常量命名:全大写+下划线
  • 宏命名:全大写
  • 函数命名:动词开头,清晰表达意图
  • 类命名:大驼峰,名词或名词短语

4. 表达式和基本语句

  • 运算符优先级的正确使用
  • 复合表达式的可读性优化
  • IF语句的规范写法
  • 循环语句的效率考量
  • FOR循环变量的控制
  • SWITCH语句的完整性(default分支)
  • GOTO语句的使用限制

5. 常量

  • 为什么需要常量
  • const与#define的比较
  • 常量定义规则
  • 类中的常量(static const)

6. 函数设计

  • 参数规则:
    • 输入参数用const修饰
    • 指针参数需检查NULL
    • 避免输出参数与返回值混用
  • 返回值规则:
    • 成功返回true/非零,失败返回false/零
    • 注意返回值的使用
  • 函数内部实现:
    • 保持函数短小精悍
    • 单一职责原则
  • 断言的使用: assert的合理使用场景

7. 内存管理(重点章节)

  • 内存分配方式:栈、堆、静态存储区
  • 常见的内存错误:
    • 内存泄漏
    • 访问野指针
    • 使用已释放的内存
    • 数组越界
  • 指针与数组的对比
  • 指针参数如何传递内存
  • FREE和DELETE对指针的影响
  • 杜绝野指针的技巧
  • malloc/free与new/delete的选择
  • 内存耗尽的处理策略

8. C++函数的高级特性

  • 函数重载: 参数类型、数量、顺序的区别
  • 成员函数的重载、覆盖与隐藏:
    • 重载:同一作用域,不同参数
    • 覆盖:派生类覆盖基类虚函数
    • 隐藏:派生类同名函数隐藏基类函数
  • 缺省参数: 使用注意事项
  • 运算符重载: 合理重载运算符
  • 内联函数: inline的使用时机与限制

9. 类的构造函数、析构函数与赋值函数(经典String类示例)

  • 构造函数的初始化表
  • 构造和析构的次序
  • String类示例:
    • 普通构造函数
    • 拷贝构造函数
    • 赋值函数(注意检查自赋值)
    • 析构函数
  • 派生类中基本函数的实现

10. 类的继承与组合

  • 继承的使用原则(is-a关系)
  • 组合的使用原则(has-a关系)
  • 优先使用组合而非继承

11. 其它编程经验

  • 使用const提高函数的健壮性
  • 提高程序效率的技巧
  • 其他有益建议

关键原则总结

1. 代码可读性原则

  • 代码应该像散文一样易于阅读
  • 命名要有意义,避免缩写
  • 保持代码风格一致

2. 防御性编程原则

  • 检查所有输入参数的有效性
  • 使用断言捕捉逻辑错误
  • 妥善处理错误情况

3. 内存安全原则

  • 一一对应new/delete、malloc/free
  • 指针使用后及时置NULL
  • 避免返回局部变量的地址

4. C++特性使用原则

  • 优先使用const而非#define
  • 优先使用引用而非指针
  • 合理使用内联函数优化性能
  • 理解并正确使用拷贝控制和赋值操作

附录内容

A. C++/C代码审查表

提供了系统化的代码审查清单,可用于团队代码评审。

B. C++/C试题

包含精选的编程试题,可用于面试或自我测试。

C. 试题答案与评分标准

提供了试题的详细解答和评分参考。

学习建议

  1. 通读全文: 本书篇幅适中,建议一次性读完
  2. 实践对照: 对照自己的代码,找出不符合规范的地方
  3. 团队共享: 作为团队编码规范的参考文档
  4. 面试准备: 附录试题适合面试前的复习

与其他知识的关联


笔记生成日期: 2026-09-02