En smart pointer ligner en almindelig desktop pointer , som er et programmeringssprog datatype , men med forbedrede funktioner. Enheden kan forenkle C + + udvikling, da den har til hensigt at begrænse antallet af fejl i forbindelse med misbrug af regelmæssige pointere. De pointers overvåger objekter, de har peget på for hukommelse ledelse. Den affaldsindsamling samler data fra objekter, der ikke længere er i brug af programmet. Denne funktion erstatter manuel styring af hukommelse , hvilket kræver, at operatøren til at vælge hvert objekt , der skal deallokeret og returneres til computerens hukommelse. Den smarte pointer hjælper også kontrol af grænser , som overvåger , om en variabel er i en bundet før det anvendes . Instruktioner
1
Sørg du ikke har en ugyldig reference tælle , hvilket ville slette et objekt for tidligt eller aldrig. Tildele en nylig udviklet omgang at en smart pointer og holde den der . Nu , smart pointer ejer objektet . Du kan ikke slette det manuelt eller erstatte den. Dette vil sikre et objekt der refereres til af en smart pointer ikke fejlagtigt slettet eller givet en ugyldig henvisning count.
2
Brug en smart pointer til at øge din kode. Skriv ... _ptr min Ptr (ny T) , hvis du opretter din egen smarte pointer. Brug ptr.get () for at hente den rå pointer. Må ikke tildele en T * til en smart pointer. Du kan heller ikke skrive ptr = NULL . For at bruge ptr.reset (). To objekter , der refererer hinanden gennem en reference optælling pointer er aldrig slettet. Du kan også bør aldrig konstruere en midlertidig shared_ptr at passere til funktioner. Opret en navngivet (lokal ) variabel i stedet . Ved at gøre dette, vil du øge sikkerheden for din kode .
3 Tildel standard auto_ptr smarte pointer for enkelhed. Det er ofte det bedste valg for lokale variable . Andre valgmuligheder omfatter klassen medlem , selvom du kan tildele auto_ptr som en klasse medlem . En ko pointer på dette felt kan redde computerens hukommelse. En STL container kan tildeles skraldespand indsamlede pointers til at gemme objekter fra forskellige klasser i én beholder. Forstå de særlige kendetegn i den specifikke garbage stemplet samling . Henvisning optælling /forbinder kan lække , når en cirkulær reference anvendes. For eksempel, når en spids genstand har en tælles pointer vil det pege på et objekt, der har den oprindelige tælles markøren . Denne teknik , når det anvendes rigtigt, er enkel og deterministisk .