Я работаю над проектом, в котором статический объект объявлен в одном из заголовочных файлов (скажем, A.h). Я включаю A.h в другой заголовочный файл и могу получить доступ к объекту, его функциям и данным, как если бы это был один и тот же объект. Проблема начинается, когда я включаю A.h в B.cpp и пытаюсь использовать тот же объект. Объект существует нормально, но это не тот же объект, то есть все члены, которым было задано какое-то другое значение, теперь равны 0.
Я что-то здесь упускаю?
Пример кода:
хиджры
class foo {
int result;
// variables and methods
} static foo_obj;
B.h
#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
a.cpp
#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