const Foo *p löschen
-
Hallo zusammen,
da mit hier im Forum auch was gepostet wird, stelle ich gleich noch ne Frage. ^^
Wenn ich ein const Foo* übergeben kriege, kann ich ja nur const-Funktionen
aufrufen, i. d. R. folglich Funktionen, die das Objekt nicht verändern.Warum kann ich denn das referenzierte Objekt löschen?
Gruß,
CSpille
-
nur eine vermutung: vielleicht den destructor 'private' machen?
-
CSpille schrieb:
Warum kann ich denn das referenzierte Objekt löschen?
Weil Sterben in C++ nicht zum Leben dazu gehört. Genausowenig wie Geboren werden. Konstruktoren und Destruktoren sind spezielle Memberfunktionen, die keine cv-Qualifikation besitzen können.
-
Ich nehme an es geht weil es manchmal "praktisch" ist

-
Der naheliegenste Grund ist folgender:
const std::string* const_string = new const std::string( "hello world" );Ohne einem delete auf ein konstantes Objekt könnte man das Objekt nicht mehr zerstören.
-
lolz schrieb:
Ohne einem delete auf ein konstantes Objekt könnte man das Objekt nicht mehr zerstören.
will man es denn zerstören, wenn man es 'const' macht?
das ist doch ein bisschen widersprüchlich, oder?

-
Warum? const heißt ja nur "Member werden nicht geändert" und nicht "Objekt lebt für alle Zeiten im Speicher"?
MfG SideWinder