一. 声明与定义
A. 大多数情况下,声明与定义是相同的,但是有少些情况下,声明并非定义,而定义又非声明:
1.是声明,但是并不是定义:
1) 声明了一个没有具体说明函数体的函数; void declaration(int a,int b);
2) 包含了一个extern说明符,并没有初始化或函数体;Extern int number;
3) 它是一个类定义内的静态类数据成员的声明; class test{
...; static int a; ...};
4) 它是一个类名的声明; class A;
5) 它是一个typedef声明; tepedef int INT;
2.是定义,但是并不是声明:
1) 定义了一个静态类数据成员; int test::a = 4 或者 static int a=4;
2) 定义了一个non-inline成员函数; void declaration(int a,int b){
return (a<b?a:b)}
B. 一个声明将一个名字引入到一个程序中,一个定义提供了一个实体(例如,类型、实例、函数)在一个程序中的唯一描述
在C++ 中,声明与定义的区别在于:在一个给定的作用域重复一个声明是合法的。大部分声明可以重复,但是定义只能重复一次。
重复多次: