将文件链接在一起时遇到了一些麻烦。有一些我正在使用的课程:
文件A.h中的A类标题
class A
{
public:
B someVariable; //there is class B used!!
int number;
};
文件B.h中 B类标题
class B
{
public:
void someMethod();
};
实施B
B::someMethod()
{
cout << "Value is:" << globalInstanceOfA.number << "\n";
}
然后在另一个文件中我需要声明一个全局变量globalInstanceOfA,我将在整个程序中使用它...
但是我无法解决将include,extern等放在哪里的问题。我尝试过这样的事情:
#include "A.h"
#include "B.h"
extern A globalInstanceOfA;
有人可以帮助我吗?
答案 0 :(得分:1)
该行
extern A globalInstanceOfA;
进入您必须包含的头文件才能使用变量globalInstanceOfA
;这提供了全局变量的声明。
该行
A globalInstanceOfA;
进入任何cpp文件,为全局变量提供定义。程序中的所有cpp文件中必须只有一个定义。