|
发表于 2014-1-10 17:31:30
|
显示全部楼层
网上解释:典型的例子是在各.cpp文件中共享全局变量的问题:我们都知道,全局变量一般在.cpp文件中定义,在头文件中声明为extern 。难道不能在头文件中定义全局变量吗?
答案是肯定的。但是,定义在该头文件中的全局变量,只能被一个.cpp文件包含。就是说,某个.cpp文件包含了这个定义了全局变量的头文件后,其它的.cpp文件就不能再包含该头文件了。如果这样的头文件被多个.cpp文件包含,各.cpp文件编译时没有问题,但是链接时一定出现重复定义的错误。
难道在头文件中定义的全局变量只能被一个.cpp文件使用吗?
答案是否定的。如果你一定要在头文件中定义全局变量并在多个.cpp文件中使用,那么必须:
1. 该头文件只能被唯一一个.cpp文件包含,不能被其它.cpp文件包含
2. 在其它.cpp文件中使用该全局变量时,必须对该全局变量进行extern声明 |
|