Static und Const Attribute initialiesieren?

...komplette Frage anzeigen

2 Antworten

const und static sind zwei verschiedene sachen. 

const ist wie der name schon sagt, konstant, wird also einmal initialisiert und darf nie mehr verändert werden.

static heisst, die variable gibt es nur einmal für alle instanzen der klasse. also wenn du zwei objekte von NixIs erstellst, und dann innerhalb von nixIsA den wert von global veränderst, dann wird der wert auch innerhalb von nixIsB verändert. Beide Objekte lesen den Wert aus der gleichen Speicheradresse, da du sie als static deklariert hast.

Antwort bewerten Vielen Dank für Deine Bewertung
JamesOffice 13.01.2016, 00:22

Das ist mir ganz klar! Aber was mich echt stört ist genau der Satz:
"Konstruktoren sind für die Initialisierung von "nicht static" Attributen zuständig". Wenn ich das richtig verstanden habe, sollte der Compiler in dem obigen Code einen Fehler melden, da wir das "global" in dem KONSTROKTUR initialisieren oder? Herzlichen Dank!

0
OGGY16 13.01.2016, 00:32
@JamesOffice

vielleicht stellst du deine frage mal auf stackoverflow.com :)

0

nein das ist sogar normal , wenn die const einen bezug zur klasse hat, sollte man sie auch in der klasse definieren . wie du die const dann abhandelst ist dein ding , bezogen auf drinne oder draussen .

es sollte also keinen fehler produzieren , da es keine vorschrift gibt wo eine const zu stehen hat .


Antwort bewerten Vielen Dank für Deine Bewertung
RakonDark 13.01.2016, 09:59

ausserdem hast du sie dann im namespace der classe und nicht im global space, was wiederum eine collision mit anderen in headern gesetzen gleichnamigen variablen probleme ergibt .

0

Was möchtest Du wissen?