问题:如何在C++中定义全局变量时避免重复定义呢?
今天遇到问题,全局变量重定义错误,印象中记得要加extern,但是怎么都不对,找资料后得到了解决方案,记之。(参考文献:http://www.xjktarena.com/jswz/121.html)
解决方案:
只要在定义时尽量在.cpp文件中进行,而不要在.h 文件中定义。定义好了之后,可以在.h文件中利用extern关键字进行声明。如果在.h文件中定义的话,多层包含就可能会引起重复定义的错误。
例子:
在params.cpp中定义全局变量
params.cpp
int a;//定义
params.h
extern int a;//声明
然后其他文件要使用这些变量的时候只要#include "params.h"就可以了,而且不会引起重复定义的错误.