C++中全局变量的问题
2009-08-26 01:22
357 查看
全局变量应该在.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时可以体现, 虽然容易导致数据混淆的更改, 但有时的确需要这样的全局变量
如果在.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时可以体现, 虽然容易导致数据混淆的更改, 但有时的确需要这样的全局变量
相关文章推荐
- c++引用全局变量应注意的问题
- C++多线程中用临界区控制全局变量的访问冲突问题
- 解决C++全局变量只能初始化不能赋值的问题
- 问题二十六:C++全局变量的使用实例
- C++那些细节--extern关键字&&全局变量定义问题
- 关于C/C++中全局变量的初始化问题的深入思考
- C++添加一个头文件和extern以及全局变量和局部变量问题(16.3.19上机的一小题)
- C++中全局变量与局部变量作用域问题
- C/C++语言中全局变量重复定义问题的解决方法
- c++全局变量问题
- c++中定义一个全局变量,子函数修改变量后,主函数没有改变问题
- 关于C++全局变量声明的问题
- C++ 全局变量作为实参之传递问题
- 解决C/C++语言中全局变量重复定义的问题
- 【转】c++中的局部变量和全局变量重名时取值问题
- c++多线程操作全局变量的锁的问题
- 解决C/C++语言中全局变量重复定义的问题
- C/C++全局变量的定义与引用问题
- C++全局变量初始化引发的问题
- c++ 全局变量的内存分配问题