Heim >Backend-Entwicklung >C++ >Warum ist die Verwendung von „this' nach „delete this' in C eine schlechte Idee?
Die Gefahren von „this“ nach „delete this“
Die Verwendung des „delete this“-Konstrukts in C ist nicht ohne Risiken Fallstricke. Während die ersten drei Einschränkungen hinsichtlich seiner Verwendung verständlich sind, kann die vierte Einschränkung hinsichtlich der Prüfung seines Werts oder der Durchführung anderer Maßnahmen daran verwirrend erscheinen. Es handelt sich doch doch nur um einen Zeiger, oder?
Der Grund für diese scheinbar willkürliche Einschränkung liegt in der undefinierten Natur des „this“-Zeigerwerts nach dem Aufruf von „delete this“. Dieser undefinierte Wert kann zu unvorhersehbaren Folgen und möglicherweise katastrophalem Verhalten führen.
Stellen Sie sich zum Beispiel vor, Sie interpretieren den „this“-Zeiger auf eine Ganzzahl neu und versuchen dann, darauf zuzugreifen. Es steht dem Compiler frei, zu entscheiden, dass diese Aktion das Löschen Ihrer Festplatte rechtfertigt. Während sich die meisten Compiler wahrscheinlich vernünftiger verhalten würden, ist es ein riskantes Spiel, sich angesichts undefinierten Verhaltens auf ihre Güte zu verlassen.
Um das Risiko undefinierten Verhaltens zu vermeiden, ist es ratsam, vor dem Löschen des Zeigers eine Kopie des Zeigers zu erstellen Objekt. Dadurch können Sie mit der Kopie weiterarbeiten und gleichzeitig sicherstellen, dass das Verhalten des ursprünglichen „dies“-Zeigers vorhersehbar unvorhersehbar bleibt.
Das obige ist der detaillierte Inhalt vonWarum ist die Verwendung von „this' nach „delete this' in C eine schlechte Idee?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!