C++ C+中的静态对象+;使用VisualStudio

C++ C+中的静态对象+;使用VisualStudio,c++,static-variables,C++,Static Variables,我正在处理一个项目,其中一个头文件(比如a.h)中声明了一个静态对象。我将A.h包含在另一个头文件中,可以像访问同一个对象一样访问该对象及其函数和数据。当我将A.h包含到B.cpp中并尝试使用同一对象时,问题就开始了。对象确实存在,但它不是同一个对象,即所有设置为其他值的成员现在都是0。 我是不是遗漏了什么 示例代码: A.h B.h A.cpp 在实现文件中为A.h初始化静态变量,例如A.cpp。还将变量标记为extern在实现文件中为A.h初始化静态变量-例如A.cpp。同时将变量标记为ex

我正在处理一个项目,其中一个头文件(比如a.h)中声明了一个静态对象。我将A.h包含在另一个头文件中,可以像访问同一个对象一样访问该对象及其函数和数据。当我将A.h包含到B.cpp中并尝试使用同一对象时,问题就开始了。对象确实存在,但它不是同一个对象,即所有设置为其他值的成员现在都是0。 我是不是遗漏了什么

示例代码:

A.h

B.h

A.cpp


在实现文件中为
A.h
初始化静态变量,例如
A.cpp
。还将变量标记为
extern

在实现文件中为
A.h
初始化静态变量-例如
A.cpp
。同时将变量标记为
extern

此处的示例代码会有所帮助。”“静态”可以在C++中以多种方式使用,一个是显式创建你观察到的行为!多亏了丹尼尔·A·怀特,我才得到了问题的答案。我把示例代码放进去,这样更容易理解。示例代码在这里会有所帮助。”“静态”可以在C++中以多种方式使用,一个是显式创建你观察到的行为!多亏了丹尼尔·A·怀特,我才得到了问题的答案。我把示例代码放进去,这样更容易理解。谢谢!我真傻。我想我需要提高我的OOD技能。:)谢谢我真傻。我想我需要提高我的OOD技能。:)
class foo {
  int result;
  // variables and methods
} static foo_obj;
#include "A.h"
// Do other things
foo_obj.manipulate_result(); // Uses methods of objects within B.h
// Do other things
foo_obj.showResult(); // This gives me a non-zero value
#include "A.h"
// Do other things
foo_obj.showResult();
// This outputs zero if called here even though
// foo_obj should be  in the same state as in B.h