C++中全局变量的问题

来源:互联网 发布:java默认构造器 编辑:程序博客网 时间:2024/04/28 15:37

全局变量应该在.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时可以体现, 虽然容易导致数据混淆的更改, 但有时的确需要这样的全局变量

原创粉丝点击