1)声明
告诉编译器这个名字的存在:变量名和函数名。
2) 定义
分配存储空间,对于变量时分配变量所表示数据的大小,对于函数会分配生成函数代码所占的空间。
3)声明和定义可以使在一起
如 int a;当编译器没有在前面发现a时,就声明和定义了a。
4)声明可以有多处,而定义只能有一处,否则连接时会出现重复定义的错误。
5)声明函数时,函数名不能和数据成员名同名。
6) 所有的声明都可以有多个,除了以下:
静态变量(其实这是定义)
类成员函数
以下声明可重复,举例如下:
类声明class Person;
结构声明struct Persion
函数声明void PrintName();
类型typedef int* IntPointer
外部声明extern int value;
友员声明friend class Person;
命名空间using std::cout;
7) extern
extern变量用于声明变量, 表示变量在别的文件定义或者本文件后面定义。对于函数来说,没必要用extern,一 个函数只要不带{}就是声明。
9) 指针的声明/定义
int* pA, pB, pC; 只有pA 是指针,其他两个是int。
如果想这样写,可以用typedef int* IntPointer。
IntPoint pA, pB, pC; //PA,PB,PC都是指向整形的指针
10) 解决include 同一头文件引起的外部链接错误
如果在头文件定义数据结构,而这个头文件被多个CPP 文件引用,那么就会出现重复定义的错误解决
#ifndef Header_FileName
#define Header_FileName
//头文件内容
#endif