定义和声明:
1.定义只能有一次.声明可以有多次.定义同时也是一次声明.
2.定义的方式 2.1 前面无extern 关键字. double pi.
2.2 前面有extern 且有初始化且在函数体外边 才同时表示定义. extern double pi=3.14.
3.声明的方式 extern double pi.
任何在多个文件中使用的变量都需要有与定义分离的声明.在这种情况下,一个文件含有变量的定义,使用该变量的其他文件则包含该变量的声明(而不是定义).
const:
const int i=10;
要使的const变量能够在其他文件的文件夹中访问,必须显式指定它为extern.const变量默认时是定义该变量的文件的局部变量。正如我们现在所看到的,这样设置默认情况的原因在于允许const变量定义的头文件中。
引用:
引用就是对象的另一个名字,在实际程序中,引用主要用作函数的形式参数.
引用必须用与该引用同类型的对象初始化,初始化是指明引用指向哪个对象的唯一方法.
int ival=1024.
int &refVal=ival;
const 引用
const 引用是指向const对象的引用.
const int ival=1024;
const int &refVal=ival;
typedef 可以用来定义类型的同义词
typedef double wages;
wanges hourly;
枚举:不但可以定义整数常量集,而且还把它们聚集成组.
enum open_modes {intput ,output,append};
open_modes mode1=intput;
头文件:一般包括类的定义、extern变量的声明和函数的声明。
对于头文件不应该含有定义这个规则,有三个例外。头文件可以定义类、值在编译时就已经知道的const对象和inline函数。这些实体可以在多个源文件中定义,只要每个源文件中的定义是相同的。在头文件中定义这些实体,是因为编译器需要它们的定义(不只是声明)来产生代码。比如:为了产生能定义或使用类的对象的代码,编译器需要知道组成该类型的数据成员。同时还需要知道能够在这些对象上的操作。为了能够让多个文件使用相同的常量值,const变量和它的初始化式必须是每个文件都可见的。而要使初始化可见,一般都把这样的const变量定义在头文件中,那样的话,无论该const变量何时使用,编译器都能够看到其初始化式。因为const对象默认为定义它的文件的局部变量,所以每个包含该头文件的源文件都有了自己的const变量,其名字和值都一样的。如果const变量不是用常量表达式初始化,那么它就不应该在头文件中定义。相反,和其他的变量一样,该const变量应该在一个源文件中定义并初始化。应在头文件中为它添加extern声明,以使其能被多个文件共享。