在C++中如何使用全局变量
编号:QA001737
建立日期: 1999年9月20日 最后修改日期:1999年9月20日
所属类别:
dragon:
VC5.0/6.0
Win98
想设一些全局变量。--- 随便在某个cpp文件中定义了一些变量,之后这些变量在ClasssView中显示为全局变量,但是实际上在其他.cpp中却不能用,为什么?真正的全局变量在哪里定义?能否在.h中定义全局变量?
回答:
你的定义方法没有什么问题,在其他类使用全局变量时,在变量的定义前加上extern,如:
extern int i;
当然,你可以把这样的定义放在一个头文件中。但不能把没有extern的定义放在头文件中。
实际上在类、函数之外声明的变量都是全局变量,所以如果在两个不同的.cpp中声明同名的变量,则在链接时肯定会报告错误。如果要避免这种潜在的冲突,可以在定义变量定义前加static,如:
static int nValue;
这样,在声明这个变量以外的.cpp中nValue不能访问,也不会引起冲突。
相关问题:
QA002060 "在基于MFC的应用程序,如何定义一个全局变量"
此问题由李海回答。
| |
|
|
| |
|
|