Kleine Verständnisfrage zu Pointern. [SOLVED]
-
Swordfish schrieb:
oder wir einigen uns d'rauf, daß auch durch wildes gecaste nie eine Nullreferenz
Oder einigen uns darauf, dass die Frage nach einer Nullreferenz im Sinne eines Pointers der == nullptr ist keinen Sinn macht, und dass man in C++ alle Referenzen Nullreferenzen nennen kann, die auf etwas Zeigen, was nie ein Objekt war. :p
-
cooky451 schrieb:
[...] und dass man in C++ alle Referenzen Nullreferenzen nennen kann, die auf etwas Zeigen, was nie ein Objekt war. :p
... was es de jure nicht gibt. :p
-
Der Standard spricht dieses Problem direkt an:
ISO/IEC 14882:2003 8.3.2 (4) schrieb:
(...) [Note: in particular, a null reference cannot exist in a well-defined program, because the only way to create such a reference would be to bind it to the "object" obtained by dereferencing a null pointer, which causes undefined behavior. (...)
Ob man das jetzt so versteht, dass es Null-Referenzen per Standard nicht gibt oder so, dass man, wenn man eine Null-Referenz hat, tief in Latrineninhalt steckt, ist letztlich Ansichtssache.
Ich möchte aber anmerken, dass de facto de facto wichtiger ist als de jure.
-
seldon schrieb:
Der Standard spricht dieses Problem direkt an:
ISO/IEC 14882:2003 8.3.2 (4) schrieb:
(...) [Note: in particular, a null reference cannot exist in a well-defined program, because the only way to create such a reference would be to bind it to the "object" obtained by dereferencing a null pointer, which causes undefined behavior. (...)
Ob man das jetzt so versteht, dass es Null-Referenzen per Standard nicht gibt oder so, dass man, wenn man eine Null-Referenz hat, tief in Latrineninhalt steckt, ist letztlich Ansichtssache.
Welchen Teil von "cannot exist" hast du nicht verstanden?
seldon schrieb:
Ich möchte aber anmerken, dass de facto de facto wichtiger ist als de jure.
Wichtiger bei was? Worum geht es hier eigentlich?
-
TyRoXx schrieb:
Welchen Teil von "cannot exist" hast du nicht verstanden?
Wenn der Satz "Der Himmel ist tagsüber blau, sofern es nicht gerade bewölkt ist" irgendwo auftaucht, fragst du auch nicht "Welchen Teil von 'der Himmel ist tagsüber blau' hast du nicht verstanden?".
Der "in a well-defined program"-Teil ist in der Praxis durchaus von Bedeutung. Wenn man doch mal einen Fehler macht und eine (de facto) Nullreferenz hat, hilft es einem beim Debugging wenig, darüber zu jammern, dass es diese per Standard ja eigentlich gar nicht gibt.
-
seldon schrieb:
Ich möchte aber anmerken, dass de facto de facto wichtiger ist als de jure.
+1 für Satzbau