声明:一种把一个名称引入或者重新引入到某个C++作用域的构造。 定义:它也是一种声明,但该声明必须给出被声明实体的细节。 对于变量而言,这里的细节是指:为被声明实体保留存储空间。 对于class类型和函数定义而言,指的是包含有一队花括号内容的声明。 对于外部变量而言,指的是前面没有关键字extern或者在声明时就进行初始化。
变量的声明有两种情况:
一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。
另一种是不需要建立存储空间的 例如:extern int a 其中 变量a是在别的文件中定义的.前者是"定义性声明 (defining declaration)"或者称为"定义(definition)",而后者是"引用性声明 (referncing declaration)" 从广义的角度来讲 声明中包含着定义,但是并非所有的声明都是定义,例如:int a 它既是声明,同时又是定义。然而对于 extern a 来讲 它只是声明不是定义。一般的情况下我们常常这样叙述,把建立空间的声明称之为"定义",而把不需要建立存储空间称之为"声明"。很明显我们在这里指的生命是范围比较窄的,也就是说非定义性质的声明.