全局变量应该在.cpp文件中声明,因为是要为它分配内存空间的。
如果在.h中声明,而在多个.cpp文件中都包含了这个.h文件,就会出现重复定义,引起连结错误
比如A和B两个类对应文件分别为 a.h, a.cpp , b.h , b.cpp
A类中需要定义一个全局变量foo 并在B类中访问这个全局变量
foo的定义需要在a.cpp中 , 不需要extern关键字, 直接 int foo; 即可
这样foo 因为是在cpp文件中定义, 编译器会分配好内存 并初始值为0
b.cpp文件中使用foo之前 要先声明 extern int foo
然后b.cpp 文件中对foo的操作的结果
在A类的对象访问foo时可以体现, 虽然容易导致数据混淆的更改, 但有时的确需要这样的全局变量