【发布时间】:2014-05-08 10:32:29
【问题描述】:
我有一个声明一个类的头文件,我希望这个类能够访问一个已在主 cpp C++ 文件中声明的整数(即除类文件之外的另一个文件)。我一直在谷歌上搜索,没有发现任何相关的东西。我该怎么做?
【问题讨论】:
-
将头文件中的整数声明为
extern
标签: c++ class variables integer header-files
我有一个声明一个类的头文件,我希望这个类能够访问一个已在主 cpp C++ 文件中声明的整数(即除类文件之外的另一个文件)。我一直在谷歌上搜索,没有发现任何相关的东西。我该怎么做?
【问题讨论】:
extern
标签: c++ class variables integer header-files
要在源文件之间共享全局变量,请使用 extern 关键字。
main.cpp
#include "foo.h"
int global_var=0;
int main()
{
foo();
return 0;
}
foo.h
#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 中的整数移动到一个函数中,使其在那里成为静态,让函数返回对它的引用并将函数放入它自己的头文件中,该头文件是类头文件(或实现文件,如果合适的话) ) 包括。
整数.h:
#ifndef INTEGER_H // use some better, longer name here
#define INTEGER_H
int &Integer();
#endif
整数.cpp:
#include "integer.h"
int &Integer()
{
static int i = 0;
return i;
}
像这样访问整数:
int x = Integer(); // copy
Integer() = 123; // assign
【讨论】: