c++从类头文件中访问全局整数

C++ access global integer from class header file

本文关键字:访问 全局 整数 文件 c++      更新时间:2023-10-16

我有一个声明类的头文件,我希望这个类访问一个在主cpp c++文件中声明的整数(即另一个文件,而不是类的一个)。我一直在谷歌上搜索,没有找到任何相关信息。我该怎么做呢?

若要在多个源文件之间共享全局变量,请使用extern关键字。

main.cpp

#include "foo.h"
int global_var=0;
int main()
{
    foo();
    return 0;
}

foo。

#ifndef FOO_H
#define FOO_H
extern int global_var;
void foo();
#endif

foo.cpp

#include "foo.h"
int foo()
{
    global_var=1;
}

将main.cpp中的整数移动到函数中,使其静态,让函数返回对它的引用,并将函数放入其自己的头文件中,该类头文件(或实现文件,如果合适)包含该头文件。

integer.h:

#ifndef INTEGER_H // use some better, longer name here
#define INTEGER_H
int &Integer();
#endif

integer.cpp:

#include "integer.h"
int &Integer()
{
  static int i = 0;
  return i;
}

像这样访问整数:

int x = Integer(); // copy
Integer() = 123; // assign