第一部分 基本语言 第二章 变量和基本类型(2.9编写自己的头文件)
2.9头文件
头文件为声明提供了一个集中存放的位置,正确使用头文件带来两个好处:
1、保证所有文件使用给定实体的同一声明。
2、当声明需要修改时只用更新头文件。
一、 头文件用于声明而非定义,定义只能出现一次,而声明可以出现多次。有三个例外:
1、头文件可以定义类。
2、可以定义值在编译时就已经知道的const对象。
3、inline内联函数。
二、 定义在头文件中的const对象,当const变量用常量初始化时,const变量就是一个常量表达式,const对象要成为常量表达式,初始化就必须为编译器可见。
为了让多个文件使用相同的常量值,const对象就必须为多文件可见。这样const对象就放到了头文件中。
但是,每个变量只能定义一次,定义分配存储空间,每次对改变量的引用都关联到同一存储空间。因为const对象默认为文件局部变量,所以合法。常量是全局可见性的,所以要在头文件,但是const对象是文件局部变量,只存在于头文件中,别的文件不能访问,所以合法。
反之,const应和其他变量一样,在头文件声明,别的文件定义。
习题解答:
1、判断下列语句那些是声明,哪些是定义,请解释原因。
extern int ix=1024;
int iy;
extern int iz;
extern const int &ri;
答:第一第二是定义,第三第四声明。2、下列声明和定义那些应该放在头文件中?那些应该放在源文件中?解释原因。
int var;
const double pi=3.14;
externint total=225;
constdouble sq2=squt(2.0);
答:第一第三第四应放在源文件中,第二应放在头文件中。