Es gibt viele Fragen über statische vs globale hier, aber ich denke, meine Frage ist ein bisschen anders.
Ich möchte wissen, ob es eine Möglichkeit gibt, eine Variable in einem Namespace über Dateien hinweg zu teilen, wie es statische Variablen in einer Klasse können.
Zum Beispiel habe ich das codiert:
%Vor%-
%Vor%-
%Vor%All das ergab das für Code und Code:
%Vor%Gibt es wieder eine Möglichkeit, eine Variable, die in einem Namespace über Dateien verteilt ist, wie statische Variablen in einer Klasse zu verwenden? Der Grund, den ich stelle, ist, weil ich dachte, ich wäre in der Lage, mich durch die Benutzung von :: notation vor widersprüchlichen globalen Variablen zu schützen, und fand nur heraus, dass ich es nicht konnte. Und wie jeder selbstscheue Programmierer glaube ich, dass ich es falsch mache.
Ja:
%Vor% Außerhalb von class
oder struct
hat static
eine ganz andere Bedeutung. Es gibt eine symbolische interne Verbindung. Wenn Sie also dieselbe Variable wie static
deklarieren, erhalten Sie tatsächlich eine andere Kopie für alle Übersetzungseinheiten, keine eindeutige globale Einheit.
Beachten Sie, dass Sie die Variable einmal initialisieren müssen:
%Vor%Tags und Links class c++ namespaces static