smart Zeiger + "das" als schädlich angesehen?

In einem C ++ - Projekt, das intelligente Zeiger verwendet, z. B.boost::shared_ptr, was ist eine gute Designphilosophie in Bezug auf die Verwendung von "this "?

Berücksichtige das

Es ist gefährlich, den in einem intelligenten Zeiger enthaltenen Rohzeiger für die spätere Verwendung zu speichern. Sie haben die Kontrolle über das Löschen von Objekten aufgegeben und vertrauen darauf, dass der intelligente Zeiger dies zum richtigen Zeitpunkt tut.

Nicht statische Klassenmitglieder verwenden grundsätzlich einthis Zeiger. Es ist ein roher Zeiger, der nicht geändert werden kann.

Wenn ich jemals speichernthis in einer anderen Variablen oder übergebe sie an eine andere Funktion, die sie möglicherweise für später speichern oder in einem Rückruf binden könnte. Ich erstelle Fehler, die eingeführt werden, wenn sich jemand entscheidet, einen gemeinsamen Zeiger auf meine Klasse zu setzen.

Gegeben, dass es für mich immer angemessen ist, ein @ explizit zu verwendthis Zeiger? Gibt es Design-Paradigmen, die Fehler in diesem Zusammenhang verhindern können?

Antworten auf die Frage(16)

Ihre Antwort auf die Frage