头文件可以保证所有使用给定实体的同一声明,当声明需要修改时,只需要修改头文件修改就可以,使用预处理器可以避免文件的重复包含如下所示:
#ifndef ZHANG_H
#define ZHANG_H
.......
#endif
C++中头文件应该包含内容如下:
(1)类的定义、extern变量、函数的声明;
(2)在编译时已知的const对象的定义(用常量表达式初始化),因为当const变量用常量表达式初始化时,可以保证所有变量具有相同的值;
(3)Inline函数,内联函数可以直接当文本展开,不需要调用;
(4)在类的定义中一般可以使用引用或者指针可以声明的数据成员,就不要用对象完成, 因为如果是指针或者引用,只需要一个类型声明;但如果是对象就需要该类型的定义。 这个时候要为声明式和定义式提供不同的头文件。
(5)头文件中必须使用完全限定的标准库名字,不能使用using声明或者using指示,以 防重复包含。也就是只能用std::cin>>a,而不能写成using std::cin;