static Vars im Header
-
Wenn ich eine Variable im Header als statisch deklariere, erstellt dann jedes Cpp-Modul seine eigene Instanz dieser Variable oder nutzen alle die gleiche?
Grüße
-
fenrayn schrieb:
Wenn ich eine Variable im Header als statisch deklariere, erstellt dann jedes Cpp-Modul seine eigene Instanz dieser Variable oder nutzen alle die gleiche?
Grüße-deklariere+definiere, eigene
-
Wenn du sie (nur) deklarierst (also mit einem extern davor) ist es immer dieselbe Variable.
Wenn du sie aber definierst, dann bekommt jede Übersetzungseinheit eine eigene Variable, die sich gleichen.
-
Unglückliche Ausdrucksweise, ich meine definieren!
-
Und achte auf den Unterschied von dieselbe und die Gleiche.
http://www.selbe-gleiche.de/
-
Ich hack dir gleich die Finger ab! ^^
-
fenrayn schrieb:
Ich hack dir gleich die Finger ab! ^^
Irgendwie kann man das nur schwer interpretieren... In diesem Fall ist der Unterschied zwischen "gleichen" Variablen und "derselben" Variable nämlich genau der springende Punkt.
Wenn du dich aber wirklich dafür interessierst, dann sind die nächsten Dinge, die du dir ansehen solltest, die "one definition rule" (siehe http://en.cppreference.com/w/cpp/language/definition ) und zu deiner Frage mit "static", das nennt sich "internal linkage" (http://en.cppreference.com/w/cpp/language/storage_duration )