我有几个头文件.h
及其相应的.cpp
文件。这里假设我有part1.h
和part2.h
用于声明。相应的cpp
为part1.cpp
和part2.cpp
,用于定义函数。
我还有一个main
的文件。在这个main函数中,我有一个变量float * change
。正如其名称,我将更改change
的值,然后调用F
中定义的函数part1.cpp
和G
中的part2.cpp
。问题是我无法将change
作为参数传递。
所以起初我打算将它定义为全局变量。但后来我发现这个变量总是在变化。但是全局变量只能定义一次。那么有什么方法可以解决这个问题吗?
提前谢谢。
答案 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.cpp
和part2.cpp
中声明此内容,而不是通用标头。但是,如果你以后改变某些东西,例如浮动到双倍,你不应该忘记任何这些声明。
记住Stroustrups着名的引语:" //全局变量 - 避免那些你能做到的"
答案 2 :(得分:1)
我建议你做get / set函数来随时随地获取变量,并保持OOP封装。 http://www.cplusplus.com/forum/beginner/107842/