const correctness bei Pointer
-
Ich habe eine Klasse, die als Attribut einen Pointer auf ein Objekt dieser Klasse hat. Dieses Attribut kann nur per ctor initalisiert werden.
Ich will dem Ersteller der Klasse versichern, dass ich, sofern er einen Pointer übergibt, nichts damit machen werde (löschen). Ich rufe lediglich die Methoden auf, die mir angeboten werden.
Wie sieht die Syntax dafür aus? Egal was ich mache, dass Teil ist nie const und ich kann immerdelete *myPtr; // aufrufen...Eine 0 zuweisung muss natürlich auch möglich sein, falls kein Pointer vom Anwender übergeben wird:
myPtr = 0;
Dachte an
myKlasse const *myPtr; constWas aber wie bereits geschrieben nicht funktioniert.... danke für eure Hilfe

-
CCP schrieb:
Ich will dem Ersteller der Klasse versichern, dass ich, sofern er einen Pointer übergibt, nichts damit machen werde (löschen).
also delete unterbinden? geht net.
-
Na klar geht das. Mach den d'tor private/protected und mach den Ersteller, bzw. den, der den Zeiger am Ende loeschen soll, zum Friend.
-
Hallo,
const kann man verschieden anwenden:
int j = 578; int *p = &j; //Variabler Zeiger, variables Objekt const int *p2 = &j; //Variabler Zeiger, konstantes Objekt //int const *p2 = &j; //ebenso: Variabler Zeiger, konstantes Objekt int * const p3 = &j; //Konstanter Zeiger, variables Objekt const int * const p4 = &j; //Konstanter Zeiger, konstantes ObjektBtw. Wieso eigentlich keine Referenz verwenden?
MfG
GPC