目录
一般两种方式。
一、使用extern声明
一次定义、多次使用原则。使用前用external声明即可。
举例:
utils.cpp
这里是定义,使用的地方用 extern int alibli; 声明即可!
int alibli = 111;
a.h
声明个函数,供main调用
void ChangeValue();
a.cpp
#include "a.h"
void ChangeValue()
{
extern int alibli;
alibli = 222;
}
b.h
声明个函数,供main调用
int UseValue();
b.app
#include "b.h"
int UseValue()
{
extern int alibli;
return alibli + 1000;
}
最后写个main函数,测试下。
main.cpp
#include <iostream>
#include "a.h"
#include "b.h"
int main()
{
extern int alibli;
std::cout << alibli << std::endl;
ChangeValue();
std::cout << alibli << std::endl;
std::cout << UseValue() << std::endl;
return 0;
}
编译运行:
g++ main.cpp a.cpp b.cpp utils.cpp -o test
./test
结果:
111
222
1222
二、static类成员
就是在某个头文件中写个类,类里面static成员。因为static类成员不属于类的实例属于类,所以可以当做全局变量使用。
举例:
utils.h
class Alibli
{
static int a;
};
xxx.cpp
#include <utils.h>
printA()
{
cout<<Alibli::a<<endl;
}