Es gibt einige interessante Fragen zu Fallstricken mit boost::shared_ptr
s. In einem von ihnen gibt es den nützlichen Tipp, um boost::shared_ptr<Base>
und boost::shared_ptr<Derived>
auf das gleiche Objekt vom Typ Derived
zu vermeiden, da sie unterschiedliche Referenzzählungen verwenden und das Objekt möglicherweise vorzeitig zerstören.Boost :: shared_ptr <T> und boost :: shared_ptr <const T> teilen Sie die Referenzzahl?
Meine Frage: Ist es sicher, dass sowohl boost::shared_ptr<T>
als auch boost::shared_ptr<const T>
auf dasselbe Objekt vom Typ T
zeigen, oder wird dies das gleiche Problem verursachen?
Können Sie eine Referenz für den Basis/abgeleiteten Anspruch angeben? – fredoverflow
http://stackoverflow.com/questions/701456/what-are-potential-dangers-when-using-boostshared-ptr/716112#716112 – lytenyn
Basis/Ableiten ist 100% sicher. Es ist unsicher, 'get()' zu verwenden. Hier ist analoge Situation ohne Base: 'shared_ptr ptr (neu abgeleitet), ptr2 (ptr.get());' - unsicher. –
ybungalobill