我正在尝试创建一堆 void 方法并稍后在程序中调用它们。我将在前面演示代码,以帮助更好地理解我的问题。
.h file
static float sfloat;
namespace someNamespace
{
static void foo();
}
.cpp file
void someNamespace::foo(){cout<<sfloat<<endl}
- 上面的代码是我正在研究的类的更简单版本。
我在其他 .cpp 文件中初始化 sfloat
otherFile.cpp
void initializeAndUseFoo(){sfloat = 5; someNamespace::foo();}
据我了解,我希望 foo 打印出 5 但它会打印出 0 。这种行为发生在我拥有的所有其他静态变量(包括指针)中。似乎不知何故,函数内部的变量从未初始化为我分配的值。
但是,如果我不通过函数调用“sfloat”,那么我可以正确调用它。(如果我只是在控制台上打印出来
cout<<"just print it not through the function : " <<sfloat<<endl;
那么它确实是5
感谢您的阅读。