天天看点

《高质量程序设计指南:C++/C语言》 林锐

一、C++ 文件结构
 
C++/C 程序的头文件以“.h”为后缀,C 程序的定义文件以“. c”为后缀,C++程序
 
的定义文件通常以“.cpp”为后缀
 

(1)、头文件结构(*.h):
 
头文件由三部分内容组成:
 
(1)头文件开头处的版权和版本声明。
 
(2)预处理块。
 
(3)函数和类结构声明等。
 
为了防止头文件被重复引用,应当用ifndef/define/endif 结构产生预
 
处理块。
 
用#include <filename.h> 格式来引用标准库的头文件。
 
用#include “filename.h” 格式来引用非标准库的头文件。
 
eg:
 
#ifndef GRAPHICS_H // 防止 graphics.h 被重复引用
 
#define GRAPHICS_H
 
#include <math.h> // 引用标准库的头文件
 
#include “myheader.h” // 引用非标准库的头文件
 
void Function1(); // 全局函数声明
 

class Box // 类结构声明
 
{
 

};
 
#endif
 

(2)、定义文件的结构:
 
定义文件开头处的版权和版本声明
 
对一些头文件的引用。
 
程序的实现体(包括数据和代码)。
 
#include “graphics.h”// 引用头文件
 

// 全局函数的实现体
 
void Function1(?)
 
{
 

}
 
// 类成员函数的实现体
 
void Box::Draw(?)
 
{
 

}
 

二、命名:
 
【规则 3-2-2】变量和参数用小写字母开头的单词组合而成。
 
例如:
 
BOOL flag;
 
int drawMode;
 
【规则 3-2-3】常量全用大写的字母,用下划线分割单词。
 
例如:
 
const int MAX = 100;
 
const int MAX_LENGTH = 100;
 
【规则 3-2-4】静态变量加前缀s_(表示static)。
 
例如:
 
void Init(…)
 
{
 
static int s_initValue; // 静态变量
 
…
 
}
 
【规则 3-2-5】如果不得已需要全局变量,则使全局变量加前缀g_(表示global)。
 
例如:
 
int g_howManyPeople; // 全局变量
 
int g_howMuchMoney; // 全局变量 
 
  【规则 3-2-6】类的数据成员加前缀m_(表示member),这样可以避免数据成员与
  
 成员函数的参数同名。
  
 例如:
  
 void Object::SetValue(int width, int height)
  
 {
  
 m_width = width;
  
 m_height = height;
  
 }
  

 三、常量
  
 

  常量用来表示那些将在程序中多次出现的数字或字符串。
 
 
 

  需要对外提供的常量一般放在头文件中。不需要发布的放在定义文件的头部。
 
 
 

  const int MAX = 100
 
 
 

  类中的常量:
 
 
 

  不能在类中初始化const数据成员。
 
 
 

  class A
 
 
 

  {
 
 
 

       const int SIZE = 100;
 
 
 

       int array[SIZE];  
  //ERROR 类对象未创建,编译器不知道SIZE 值大小。
 
 
 

  }
 
 
 

  
 
 

  const数据成员只能在构造函数初始化列表中进行。
 
 
 

  class A
 
 
 

  {
 
 
 

       A(int size);
 
 
 

       const int SIZE;
 
 
 

  }
 
 
 

  
 
 

  调用:A a(100)
 
 
 

  
 
 

  使用枚举类型可以在整个类中建立恒定的常量。
 
 
 

  class A 
 
 
 

  {
 
 
 

       enum {    SIZE1 = 100, SIZE2  = 200};//枚举常量。
 
 
 

      
 
 
 

       int array[SIZE1];
 
 
 

       int array[SIZE2]; 
 
 
 

  }
 
 
 

  
 
 

  三、函数设计