C++ C+;中的更多类和外部变量+;
我在将文件链接到一起时遇到一些问题。我正在使用一些类: 文件A.h中的A类标题C++ C+;中的更多类和外部变量+;,c++,class,global,extern,C++,Class,Global,Extern,我在将文件链接到一起时遇到一些问题。我正在使用一些类: 文件A.h中的A类标题 class A { public: B someVariable; //there is class B used!! int number; }; class B { public: void someMethod(); }; 文件B.h中的B类标题 class A { public: B someVariable; //there is class B used
class A
{
public:
B someVariable; //there is class B used!!
int number;
};
class B
{
public:
void someMethod();
};
文件B.h中的B类标题
class A
{
public:
B someVariable; //there is class B used!!
int number;
};
class B
{
public:
void someMethod();
};
B的实施
B::someMethod()
{
cout << "Value is:" << globalInstanceOfA.number << "\n";
}
有人能帮我吗?电话线
extern A globalInstanceOfA;
A globalInstanceOfA;
进入一个头文件,为了使用变量globalInstanceOfA
,必须包含该头文件;这提供了全局变量的声明
线路
extern A globalInstanceOfA;
A globalInstanceOfA;
进入任何cpp文件以提供全局变量的定义。程序中的所有cpp文件中必须只有一个定义。您应该将“B.h”放在“A.h”之前。您在这里遇到了一个设计错误,并且和B应该永远不认识对方……嗯。
extern
不需要放在标题中。在cpp中没有什么不对的。然而,使用它有一些适度的错误。@Dave将extern
放在cpp文件中并没有什么错误,但这通常是无用的:一个人需要extern
在多个cpp之间共享一个全局文件,这就是为什么它通常在一个标题中。不过,我确实同意总的来说“使用globals有点问题”。迂腐的:一个人不需要extern
在多个CPP之间共享一个全局,他们需要它在一个或多个CPP之间共享一个全局。。。这就是为什么有时在特定的cpp中使用它非常脏/有用的原因。