头文件用于声明而不是用于定义。
对于非const变量不能在头文件中定义,因为非const变量默认为extern,如果头文件被多次包含(直接或间接),那么变量就会被重复定义,因此头文件中只能声明变量。
extern int a=10;//不能用于头文件中
extern int b;//可以
int c;//不可以,是定义
这需要清楚的什么是定义什么是声明。
对于const变量,默认情况下,该变量是文件的局部变量,因此,可以把const变量的定义放入头文件中,这是合法的。即使头文件被多次包含,这些文件也不会重复定义此变量,对于const变量的引用都指定在头文件中定义的变量。
头文件中要使用完全限定的标准库名字,而不要用using。
头文件中可以定义类,编译时知道值的const变量,inline函数。