Kann in C++ eine static-Variable objektübergreifend genutzt werden?

3 Antworten

Ja, statische Variablen beziehen sich auf die Klasse, nicht auf die einzelnen Instanzen der Klasse. Änderst du also diese Variable von InstanzA, ist sie dann für InstanzB auch geändert.

Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung

Das ist ja der Sinn der Veranstaltung, man kann damit z.B. zählen, wie oft eine Instanz einer bestimmten Klasse gebildet wird, indem man im Konstruktor die Variable hochzählen lässt (man kann sie im Destruktor auch wieder heruntersetzen), oder man lässt damit nur eine Instanzbildung zu (Singleton).

Der Sache nach ist es eine globale Variable, auf die jede Instanz zugreifen kann.

Das Problem bei Deiner Gestaltung ist jedoch die Weitergabe aus der Instanz heraus auf andere Einheiten: Willst Du das über einen Zeiger, über eine Referenz oder über eine bloße Kopie machen? (letzteres wäre etwas schräg, weil der globale Charakter verloren ginge).

Woher ich das weiß:eigene Erfahrung – Hobby und teilweise beruflich

kmariodo 
Fragesteller
 17.08.2021, 21:40

Mit Weitergabe meine ich ja nur, dass Instanz 1 die Variable auf 12 setzen kann und Instanz 2 dann sofort mit diesem Wert arbeiten kann, wenn sie dran ist 😅

0

Ja, das ist der Gedanke dahinter.

Woher ich das weiß:Berufserfahrung