我该如何定义这个变量?

时间:2014-10-01 17:32:17

标签: c++

我有几个头文件.h及其相应的.cpp文件。这里假设我有part1.hpart2.h用于声明。相应的cpppart1.cpppart2.cpp,用于定义函数。

我还有一个main的文件。在这个main函数中,我有一个变量float * change。正如其名称,我将更改change的值,然后调用F中定义的函数part1.cppG中的part2.cpp。问题是我无法将change作为参数传递。 所以起初我打算将它定义为全局变量。但后来我发现这个变量总是在变化。但是全局变量只能定义一次。那么有什么方法可以解决这个问题吗?

提前谢谢。

3 个答案:

答案 0 :(得分:2)

您可以在.cpp个文件

中正常定义变量
float* change;

然后在你的一个头文件中,你可以声明它:

extern float* change;

现在#include包含全局变量的头文件。

答案 1 :(得分:1)

在你的一个标题中声明

extern float * change;  // does not define the variable, but just that it exists somewhere

您也可以直接在part1.cpppart2.cpp中声明此内容,而不是通用标头。但是,如果你以后改变某些东西,例如浮动到双倍,你不应该忘记任何这些声明。

记住Stroustrups着名的引语:" //全局变量 - 避免那些你能做到的"

答案 2 :(得分:1)

我建议你做get / set函数来随时随地获取变量,并保持OOP封装。 http://www.cplusplus.com/forum/beginner/107842/