C ++: Wie wird das statische Klassenmitglied implementiert?

8

Wo werden statische Datenelemente gespeichert? Gibt es eine Art statische Member-Tabelle (wie in der "Tabelle der virtuellen Methoden")? Ich habe ein Experiment durchgeführt - scheint wie statische Mitglieder sizeof() überhaupt nicht beeinflussen. Bedeutet dies, dass alle Verweise auf statische Elemente in eine feste Adresse konvertiert werden?

    
Violet Giraffe 10.05.2011, 13:14
quelle

2 Antworten

13

Der C ++ - Standard erzwingt keine bestimmte Implementierung. Aber typischerweise werden statische Klassenmitglieder auf ähnliche Weise wie "freie" Statiken implementiert.

Allerdings ist Ihre Beobachtung, dass sizeof nicht von statischen Elementen betroffen sein sollte, korrekt.

    
Oliver Charlesworth 10.05.2011, 13:15
quelle
4

Statische Member in C ++ werden genau so wie statische Nicht-Member in C ++ und C implementiert. Es gibt keine "statische Member-Tabelle".

    
Neil Butterworth 10.05.2011 13:15
quelle

Tags und Links