Variationen dieser Frage wurden möglicherweise bereits früher gestellt. Diese Frage bezieht sich auf statische Datenelement vs globale Variable nicht statische Variable vs globale Variable.Unterschied zwischen statischem Datenelement und globaler Variable
Wir alle wissen, was statische Daten Mitglied und globale Variablen tun. Wie Compiler sie verbinden, wo sie im Speicherlayout abgebildet werden, ihre Standardwerte usw. Wenn ich darüber nachdenke, habe ich kein klares Bild von den möglichen Szenarien, in denen wir statische Datenelemente anstelle von globalen Variablen verwenden sollten.
Ich dachte an einen Anwendungsfall, bei dem Sie die Anzahl der für eine Klasse erstellten Objekte zählen möchten. Sie erstellen ein statisches Datenelement und erhöhen es im Ctor, wenn Sie ein neues Objekt erstellen. Aber bei demselben Gedanken könnten wir auch dasselbe tun, nämlich die erzeugten Objekte mit der globalen Variable zählen.
Also ist es mir bis jetzt nicht klar, was sind die Anwendungsfälle der Verwendung von statischen Daten Mitglied vs globale Variable? Irgendjemand, bitte werfen Sie ein Licht darauf.
"Diese Frage bezieht sich auf statische Datenelement vs globale Variable nicht statische Variable vs globale Variable." - Was? – KonstantinL
In Ihrem eigenen Beispiel kann jeder andere Code die globale Variable ändern und fehlerhafte Ergebnisse liefern. Dies bedeutet, dass die Anzahl der Konstruktionen ungenau sein könnte. Ein ordnungsgemäß gekapseltes statisches Datenelement weist keine Probleme auf, wenn Sie seinen Status steuern. – user2296177
Die Schlüsselwörter: Namespace und Zugriffsrechte. – KonstantinL