高质量 C++/C 编程指南

作者: 林锐 博士
页数: 101页
文件大小: 259.32KB
完成日期: 2001年7月24日
处理状态: done


书籍简介

《高质量 C++/C 编程指南》是林锐博士的经典编程规范著作,被誉为”百页经书”。该书系统阐述了 C++/C 编程的规范与方法,涵盖了从文件结构、命名规则、内存管理到类设计等各个方面,是程序员从”编程老手”迈向”编程高手”的必读之作。


核心内容结构

第1章 文件结构

  • 版权和版本的声明
  • 头文件的结构与作用
  • 定义文件的结构
  • 目录结构设计

第2章 程序的版式

  • 空行与代码行的规范使用
  • 代码行内的空格规则
  • 对齐与长行拆分
  • 注释的编写规范
  • 类的版式设计

第3章 命名规则

  • 共性命名规则
  • Windows应用程序命名规范
  • UNIX应用程序命名规范

第4章 表达式和基本语句

  • 运算符优先级处理
  • 复合表达式优化
  • IF、循环、SWITCH、GOTO语句规范

第5章 常量

  • CONST与#define的比较
  • 常量定义规则
  • 类中常量的使用

第6章 函数设计

  • 参数的规则
  • 返回值的规则
  • 函数内部实现的规则
  • 断言的使用
  • 引用与指针的比较

第7章 内存管理(核心章节)

  • 内存分配方式
  • 常见内存错误及对策
  • 指针与数组的对比
  • FREE和DELETE的陷阱
  • 杜绝”野指针”
  • MALLOC/FREE vs NEW/DELETE
  • 内存耗尽的处理

第8章 C++函数的高级特性

  • 函数重载概念
  • 成员函数的重载、覆盖与隐藏
  • 参数的缺省值
  • 运算符重载
  • 函数内联

第9章 类的构造函数、析构函数与赋值函数

  • 构造函数与析构函数的起源
  • 构造函数的初始化表
  • 构造和析构的次序
  • 类STRING的实现示例
  • 拷贝构造函数与赋值函数的重要性
  • 派生类中基本函数的实现

第10章 类的继承与组合

  • 继承的设计原则
  • 组合的使用场景

第11章 其它编程经验

  • 使用CONST提高函数健壮性
  • 提高程序效率的方法
  • 有益建议汇总

核心知识点

1. 内存管理黄金法则

// 正确示例:确保指针使用后置空
int* p = new int;
delete p;
p = NULL;  // 防止野指针
 
// 错误示例:忘记释放导致内存泄漏
int* p = new int;
// 忘记 delete p;

2. 构造函数初始化表

// 正确:使用初始化表
class String {
    String(const char* initial);
private:
    char* m_data;
    int m_len;
};
 
String::String(const char* initial) {
    // 初始化表更高效
    m_data = new char[m_len + 1];
    strcpy(m_data, initial);
}

3. 引用的优势

// 引用作为参数:避免拷贝开销
void function(const String& input);  // 推荐
 
// 指针作为参数:需要检查NULL
void function(const String* input);   // 需判断

4. CONST的正确使用

// 提高函数健壮性
const int MAX_SIZE = 100;
const String& operator[](int index) const;  // 常成员函数

关键原则总结

文件结构原则

  • 每个头文件应有版权和版本声明
  • 头文件使用include guard防止重复包含
  • 目录结构清晰,便于维护

代码版式原则

  • 合理使用空行分隔逻辑块
  • 代码行长度控制在合理范围
  • 注释简洁明了,解释”为什么”而非”是什么”

命名原则

  • 使用有意义的名称
  • 保持一致性
  • 避免缩写和单字母变量(除循环变量)

内存管理原则

  • 成对使用new/delete、malloc/free
  • 释放后立即置NULL
  • 检查指针有效性
  • 避免内存泄漏和野指针

实践建议

  1. 团队开发:建立统一的编码规范,使用代码审查表
  2. 个人成长:定期阅读并实践书中规则
  3. 代码审查:参考附录A的代码审查表进行自查
  4. 考试准备:附录B的试题可作为面试准备材料

与其他知识的关联


参考资料

  • 原著:《高质量C++/C编程指南》v1.0,林锐,2001年7月
  • 附录:C++/C代码审查表、试题及答案