En smart pekeren ligner på en vanlig stasjonær pekeren, som er et programmeringsspråk datatype , men med utvidede funksjoner. Enheten kan forenkle C + + utvikling , som det har til hensikt å begrense antall bugs forbundet med å misbruke vanlige pekere . Pekere overvåke gjenstander de har pekt på for minnehåndtering . Den garbage collector samler data fra gjenstander som ikke lenger er i bruk av programmet. Denne funksjonen erstatter manuell minnehåndtering , noe som krever at føreren kan velge hvert objekt som må deallocated og returnerte til datamaskinens minne. Den smarte pekeren bistår også i grensekontroll , som overvåker om en variabel er innenfor en grense før det brukes . Instruksjoner
en
Sørg for at du ikke har en ugyldig referanse teller, noe som ville slette et objekt for tidlig eller aldri . Tilordne en nylig utviklet forekomst til en smart pekeren og holde den der . Nå eier smart pekeren på objektet. Du kan ikke slette det manuelt eller erstatte den. Dette vil sikre et objekt referert til av en smart pekeren er ikke feilaktig slettet eller gitt en ugyldig referanse teller.
2
Bruk en smart pekeren for å øke din kode . Skriv ... _ptr min Ptr ( ny T) hvis du opprette din egen smart pekeren . Bruk ptr.get () for å hente den rå pekeren . Ikke tilordne en T * til et smart pekeren. Du kan heller ikke skrive ptr = NULL . For det, bruker ptr.reset ( ) . To objekter som refererer til hverandre gjennom en referanse telling pekeren blir aldri slettet . Du kan heller aldri skal konstruere en midlertidig shared_ptr å passere til funksjoner . Lag en navngitt (lokal ) variabel i stedet. Ved å gjøre dette , vil du øke sikkerheten til koden din .
3 Angi standard auto_ptr smart pekeren for enkelhet. Det er ofte det beste valget for lokale variabler . Andre muligheter er klassen medlem , om du kan tilordne auto_ptr som gruppemedlem . Ei ku peker på dette feltet kan lagre datamaskinens minne . En STL beholder kan tilordnes til søppel - innsamlede pekere for å lagre gjenstander fra forskjellige klasser i en kontainer . Forstå egenskapene til den spesifikke søppelrydding brukt . Referansetelling /linking kan lekke når en sirkulær referanse er brukt. For eksempel, når en spiss gjenstand har en telles peker, vil det peke på et objekt som har den opprinnelige telles pekeren. Denne teknikken , når de brukes riktig , er enkel og deterministisk .