A Smart-Pointer ist ähnlich wie bei einem normalen Desktop- Zeiger , die eine Programmiersprache Datentyp ist , aber mit erweiterten Funktionen. Das Gerät kann vereinfachen C + + -Entwicklung, wie sie beabsichtigt, die Anzahl der Fehler mit dem Missbrauch regelmäßige Hinweise zu begrenzen . Die Zeiger überwachen Objekte, die sie für Speicher-Management haben darauf hingewiesen . Der Garbage Collector sammelt Daten von Objekten, die nicht mehr in Gebrauch sind durch das Programm . Diese Funktion ersetzt die manuelle Speicherverwaltung, die es dem Bediener , um jedes Objekt , die freigegeben werden und wieder in den Arbeitsspeicher des Computers benötigt wählen erfordert . Die Smart-Pointer hilft auch bei der Überprüfung von Grenzen , die überwacht , ob eine Variable innerhalb eines gebundenen ist, bevor es benutzt wird. Anleitung
1
Achten Sie nicht über einen ungültigen Verweis-Zähler , die ein Objekt zu löschen wäre zu früh oder nie. Vergeben Sie einen neu entwickelten Instanz mit einem intelligenten Zeiger und dort zu halten . Jetzt besitzt die Smart-Pointer auf das Objekt. Sie können nicht manuell löschen oder ersetzen. Dadurch wird sichergestellt, ein Objekt von einem intelligenten Zeiger referenziert nicht versehentlich gelöscht oder gegeben eine ungültige Referenz zählen.
2
Verwenden Sie ein Smart-Pointer , um Ihren Code zu steigern. Schreiben ... _ptr meine Ptr (neu T ), wenn Sie Ihre eigenen Smart-Pointer erstellen. Verwenden ptr.get (), um das rohe Zeiger abzurufen. Weisen Sie keinen T * zu einem intelligenten Zeiger . Sie können auch nicht schreiben ptr = NULL . Dafür verwenden ptr.reset (). Zwei Objekte, die miteinander durch eine Verweiszählung Zeiger zu verweisen werden nie gelöscht . Sie sollten auch nie bauen eine temporäre shared_ptr an Funktionen übergeben . Erstellen Sie eine benannte (lokalen) Variable statt . Auf diese Weise erhöhen Sie die Sicherheit Ihres Codes.
3 Weisen Sie den Standard auto_ptr intelligenten Zeiger für Einfachheit. Es ist oft die beste Wahl für lokale Variablen . Weitere Optionen sind die Klasse -Mitglied, wenn Sie auto_ptr als Klasse Mitglied zuweisen können. A COW Zeiger in diesem Bereich sparen können Computerspeicher. Ein STL-Container kann Garbage Collection Zeiger zugewiesen werden, um Objekte aus verschiedenen Klassen speichern in einem Container . Verstehen Sie die Eigenschaften der spezifischen Müllabfuhr eingesetzt. Referenz Zählen /Verknüpfung können auslaufen , wenn ein Zirkelverweis angewendet wird. Zum Beispiel , wenn ein spitzer Gegenstand eines gezählten Zeiger hat , wird es auf ein Objekt , das die ursprüngliche gezählten Hinweiszeiger weist darauf . Diese Technik, die , wenn richtig eingesetzt , ist einfach und deterministisch.