Smart-Pointer-Auswahlalgorithmus
Berücksichtigen Sie bei der Auswahl eines geeigneten Smart-Pointer-Typs die folgenden Kriterien:
Einzigartiges Eigentum:
-
Nutzung std::unique_ptr: Bietet exklusiven Besitz mit dem angegebenen Löscher. Kann in STL-Containern verwendet werden.
Geteiltes Eigentum:
-
Verwenden Sie std::shared_ptr und std::weak_ptr: Ermöglicht mehreren Eigentümern die gemeinsame Nutzung einer Ressource. Schwache Zeiger beobachten Ressourcen, ohne deren Lebensdauer zu beeinträchtigen.
Kein Eigentum:
-
Rohzeiger oder Referenzen verwenden: Für nicht - Besitz von Referenzen, wenn die Ressource das referenzierende Objekt überlebt. Verwenden Sie Rohzeiger für Nullbarkeit oder Rücksetzbarkeit.
Zusätzliche Überlegungen:
-
Boost::intrusive_ptr: Leichte Option für Ressourcen mit vorhandener Referenz gezählt Verwaltung.
-
Boost::scoped_array und std::unique_ptr: Array-Versionen von Bereichszeigern.
-
Veraltet: std::auto_ptr ist in C veraltet 11.
Empfehlung:
In den meisten Fällen sollte std::unique_ptr die Standardauswahl für eindeutigen Besitz sein. std::shared_ptr und std::weak_ptr eignen sich für Szenarios mit geteiltem Besitz. Rohzeiger und Referenzen können für nicht besitzende Beziehungen verwendet werden.
Das obige ist der detaillierte Inhalt vonWelchen Smart Pointer sollte ich in C verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn