本人小白,初学c++,做一小项目。项目中定义一套全局变量,然后在多个cpp文件中使用。然而突遇error:重定义,一阵摸索之后,终于得解。
全局变量在头文件中声明需要添加extern(如:extern int a;);然后在对应源文件内定义(如 int a=5;)
这样一来,在其他源文件内均只需要包含该头文件便可以使用该参数,且任意cpp文件均可对参数进行修改。
下面是自己测试用的例子,大神见笑。
//a.h
#ifndef A_H
#define A_H
extern int a;
void test();
#endif // A_H
//a.cpp
#include<a.h>#include<iostream>int a=5;void test(){
std::cout<<a<<std::endl;}
//b.h
#ifndef B_H#define B_H#include <a.h>void change();#endif // B_H//b.cpp#include<b.h>#include<iostream>using namespace std;void change(){
a=a+1;cout<<a<<endl;}
//main.cpp#include <iostream>#include<b.h>using namespace std;int main(int argc, char *argv[]){
test();
change();
test();
return 0;}